Как стать автором
Обновить
0

Objective C *

Компилируемый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Более правильный подход к подключению Yandex AppMetrica в React Native приложении

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.8K

Самостоятельно ставим Yandex AppMetrica в React Native приложение без каких-либо сторонних npm'ных библиотек.

Посмотрим как поставить нативно аппметрику, также напишем два нативных модуля для получения доступа к методам аппметрики.

Гайд ориентирован на React Native разработчиков, которые не могут найти нормальное решение для подключения аппметрики.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Новости

Логи Xcode — читаем самостоятельно?

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров4.1K

В этой публикации попробуем понять, как и где Xcode хранит свои логи, что такое SLF0 и как все это читать, а может быть даже понять, и лучше без IDE, так интереснее.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Построение графа зависимостей Objective-C файлов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

​​В ряде случаев приложение, написанное на языке Objective-C, для улучшения функционирования и расширения его возможностей, приходится переписывать на Swift. Осуществление перевода на язык Swift сразу всего кода не всегда рационально, гораздо разумным представляется переписывание  класса за классом. При этом сборка становится гибридной и соответственно необходимо делать так, чтобы все объявления были видимы в коде на обоих языках. 

Ввиду того, что крупные проекты содержат множество файлов понять как последние связаны друг с другом может быть затруднительным. В этой связи прежде чем приступить к переводу логичным явилось бы создание скриптов, которые позволят визуализировать зависимости между файлами Objective-C и сделать анализ проекта более удобным и понятным. 

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

Написание нативных Swift модулей для React Native на примере Yandex Mapkit

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.3K

Написание нативных Swift модулей для React Native на примере Yandex Mapkit или коротко о том, куда потратить пару часов свободного времени, если ты React Native разработчик.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии5

Истории

Учимся определять способность Core Data к легковесной миграции до загрузки контейнера

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.3K

При создании приложения на основе фреймворка Core Data мы проектируем модель данных, в которую потом снова и снова вносим изменения. Неужели при этом каждый раз нужно удалять все данные и загружать их заново, а заодно перегружать сервер и батареи пользователей? Сначала кажется, что это единственный вариант решения, но я выяснил — всё можно сделать проще.

В статье рассказываю, как свести к минимуму последствия изменений структуры данных и их негативное влияние, а также удивляюсь, почему Core Data ещё сам не предложил такое решение.

Читать далее
Всего голосов 52: ↑52 и ↓0+52
Комментарии0

Как локализовать все ваши iOS приложения на 20 языков за 5 минут

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3K

Я создал консольный инструмент, который автоматически находит все файлы .strings в проекте xcode и переводит их на все языки.

Читать далее
Всего голосов 5: ↑4 и ↓1+6
Комментарии9

Как устроено приложение Калькулятор на iPhone

Время на прочтение1 мин
Количество просмотров3.1K

Разберу как Apple использовали UIKit для приложения Калькулятор: Кнопки, окно ввода и жесты.

Из интересного - в клавиатуре комбинируют автолейаут и фреймы, сделали на сценах, а при повороте в альбомную ориентацию кнопки добавляются на лету. Подробнее под катом.

Читать далее
Всего голосов 13: ↑4 и ↓9-3
Комментарии14

Используем Objective-C в C++ без проблем

Время на прочтение6 мин
Количество просмотров3.7K

Интегрируем Objective-C код из Apple SDK в C++ проект, без переписывания всего проекта на Objective-C++, с использованием PIMPL идиомы. Также, сборка всего проекта вместе с использованием Makefile и CMake (для генерации .xcodeproject).

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии37

Про ООП через призму косвенности. И «Галя, отмена!»

Время на прочтение5 мин
Количество просмотров4.5K

Да, мы все знаем, что это такое из первых двух статей по запросу "Что такое ООП?" или из потоковых лекций первых семестров ВУЗа.

Казалось бы, ООП – Объектно ориентированное программирование. Там что-то про классы, что-то про объекты, если повезет, то, возможно, вспомним, что такое абстракция, инкапсуляция, наследование и полиморфизм. Что там еще надо знать?
И хорошо, если ты прочитал нормальную статью, и не будешь объяснять инкапсуляцию вот так: "ну это история про private, данные скрываются!".

Никогда не хотелось копнуть поглубже? Узнать почему у нас есть эти принципы?

Узнать про ООП побольше
Всего голосов 10: ↑7 и ↓3+4
Комментарии9

Шифруем CoreML

Время на прочтение4 мин
Количество просмотров2.3K

ML модель, как и многие другие формы интеллектуальный собственности, можно украсть и использовать для своих целей без ведома авторов. В случае с CoreML большинство моделей зашиты внутри приложения. Достаточно взять Jailbreak девайс, прочитать содержимое бандла и вытащить модель. Подобрать инпут модели уже дело техники и некоторого количества времени. В свое время на практике подобный подход я использовал для сравнения качества нашей ML модели с моделями конкурентов. В этой статье я хотел бы поделиться возможными способами шифрования CoreML моделей.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии9

Как устроено приложение Календарь на iPhone

Время на прочтение3 мин
Количество просмотров3.6K

Разберу как Apple использовали UIKit для приложения Календаря: события, сетку дней, экран с превью года, навигейшн и другие элементы.

Из интересного - события сделали картинками, а переход для навигации - простое перемещение вьюх за экран. Подробнее под катом.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Как я участвовал в конкурсе Telegram на создание медиаредактора и занял никакое место (но получил бесценный опыт?)

Время на прочтение11 мин
Количество просмотров6.2K

Задача состояла в создании автономного приложения для редактирования медиафайлов на Swift без использования сторонних UI-фреймворков. Конкурсные функции и интерфейсы должны быть созданы с нуля. Использование сторонних реализаций медиаредакторов с похожими функциями строго запрещено.

Плавность анимации и общая стабильность приложения будут играть важную роль. И последнее, но не менее важное — отсутствие существенных недостатков (включая сбои, проблемы с производительностью, визуальные проблемы, заметное мигание элементов, несовершенство макета и многое другое).

Если вы хотите узнать, что же было реализовано, какие ошибки и выводы я сделал после конкурса, то заходите.

Примечание. Если статья покажется интересной, то вот тут я пишу об iOS-разработке и о том, что с ней связано.

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии8

Переход на Metal

Время на прочтение18 мин
Количество просмотров11K

Мы закончили регрессионное тестирование и со дня на день собираемся начать раскатывать на бой релиз с включенным Metal. Зачем мы это делаем и как всё происходит — рассказываем в статье. 

Причина первая: уход на пенсию OpenGL для iOS/OSX. В 2018 году Apple объявили, что прекращают поддержку этого графического API, и это только вопрос времени, когда они удалят его из своих операционок и запретят выкладывать в App Store приложения, использующие GLES (OpenGL for Embedded Systems — подмножество API OpenGL для встроенных систем, например, мобильных устройств). А кому надо впопыхах интегрировать незнакомый API? Правильно, никому. Плюс, нет-нет да и случаются какие-то неприятные падения где-то под капотом OpenGL, починка которых сводится к мольбам, что очередной точечный фикс кода всё исправит.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии19

Ближайшие события

Чиним баг в iOS Firebase RemoteConfig

Время на прочтение10 мин
Количество просмотров2.1K

Здравствуйте, меня зовут Артем Волков. Я iOS разработчик в компании "AliExpress Россия".

В этой статье расскажу историю одного бага, который мы встретили, работая c подом Remote Config из SDK Google Firebase для iOS, а также о том, как мы внесли свой небольшой вклад в его исправление.

Жизнь и приключения одного бага
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Приключение на 5 минут: как мы переводили все зависимости на SPM

Время на прочтение12 мин
Количество просмотров4.4K

Привет, Хабр!

Меня зовут Вильян Яумбаев, в этой статье я расскажу вам про наши приключения на пути к SPM.

В 2015 ПСБ начал разрабатывать проект для бизнеса. Для него, в свою очередь, было нужно приложение. Сперва всё находилось в одном репозитории одного проекта в одном воркспейсе. Первые авторы подключали сторонние зависимости через CocoaPods, поскольку проприетарного менеджера зависимостей ещё не существовало. Но в тот же год в Apple началась работа над Swift Package Manager. Им предстояло встретиться в нашем проекте.

В этой статье расскажу, через что мы прошли, переводя зависимости на SPM, и поделюсь нашими наработками.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии5

Простой способ обнаружить retain cycle в UIViewController

Время на прочтение2 мин
Количество просмотров3.6K

ViewController — это один из компонентов, где обычно происходит утечка памяти, поскольку именно он чаще всего используется для хранения множества частей кода вместе. Одна ошибка, и в итоге вы получаете утечку.

Apple предлагает отличный инструмент для отладки утечек памяти. Часто для этого используется метод print в deinit.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Как я занял третье место в конкурсе Telegram и выиграл $ 2 000

Время на прочтение4 мин
Количество просмотров8.1K

Краткая предыстория.

Телеграм анонсировал конкурс для разработчиков на создание библиотеки, с помощью которой можно было бы преобразовывать лица в режиме реального времени.

Задача: Создать кроссплатформенный модуль на C++ для корректировки внешности. Создать приложение для iOS или Android, которое демонстрирует работу этого модуля, в режиме реального времени преобразовывая видео из фронтальной камеры.

Читать далее
Всего голосов 12: ↑10 и ↓2+9
Комментарии3

Как писать на Objective-C в Linux (с использованиям системы сборки CMake и автодополнением)

Время на прочтение2 мин
Количество просмотров3K

Запускаем Objective-C на Linux.

Читать далее
Рейтинг0
Комментарии4

Бывших не бывает. Как опыт спортивного программирования влияет на работу с реальным кодом

Время на прочтение8 мин
Количество просмотров8.8K

Большинство соревнований для программистов требуют максимально быстрого решения и реализации алгоритмических задач на любом из языков программирования. Среди мобильных разработчиков популярны хакатоны, но сегодня речь пойдет о контестах. Наиболее известные из них – Codeforces Rounds, VK Cup Engine, ACM ICPC. Мы поговорим о том, как они устроены, какие плюсы и минусы есть у разработчиков с «олимпиадным» бэкграундом и как этот опыт влияет на работу с коммерческими задачами в мобильной разработке.

Читать далее
Всего голосов 11: ↑7 и ↓4+7
Комментарии10
1
23 ...