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

Objective C *

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

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

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

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.3K
Блог компании VK Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *

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

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

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

Новости

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

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.9K
Разработка под iOS *Objective C *Xcode *Swift *Локализация продуктов *
Из песочницы
Перевод

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

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

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

Время на прочтение 1 мин
Количество просмотров 2.5K
Разработка под iOS *Разработка мобильных приложений *Objective C *Xcode *Swift *

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

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

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

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

Время на прочтение 6 мин
Количество просмотров 2.7K
C++ *Objective C *C *Разработка под MacOS *Системы сборки *
Из песочницы

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

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

Истории

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

Время на прочтение 5 мин
Количество просмотров 3.8K
Программирование *Objective C *ООП *
Из песочницы

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

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

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

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

Шифруем CoreML

Время на прочтение 4 мин
Количество просмотров 1.9K
Информационная безопасность *Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *
Из песочницы

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

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

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

Время на прочтение 3 мин
Количество просмотров 2.4K
Разработка под iOS *Разработка мобильных приложений *Objective C *Xcode *Swift *

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

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

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

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

Время на прочтение 11 мин
Количество просмотров 5.3K
Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *
✏️ Технотекст 2022

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

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

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

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

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

Asychronous Flow Kit — Objective-C тулкит для асинхронных операций

Время на прочтение 8 мин
Количество просмотров 851
Open source *Разработка под iOS *Objective C *Промышленное программирование *Разработка под MacOS *
Из песочницы

Всем привет.

Это моя первая публикация на Хабре, я взволнован и вообще; и в качестве дебюта хочу представить вам свой пет-проект: программный пакет на Obj-C, который реализует (некоторые) известные мне паттерны асинхронного поведения и претендует обеспечить простые инструменты для утилизации всех имеющихся процессоров.

Вперед, за деталями
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 4

Переход на Metal

Время на прочтение 18 мин
Количество просмотров 6.4K
Блог компании 2ГИС Разработка под iOS *Разработка мобильных приложений *Objective C *Геоинформационные сервисы *

Мы закончили регрессионное тестирование и со дня на день собираемся начать раскатывать на бой релиз с включенным 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 мин
Количество просмотров 1.5K
Блог компании AliExpress Россия Разработка под iOS *Objective C *

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

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

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

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

Время на прочтение 12 мин
Количество просмотров 2.9K
Блог компании ПСБ Разработка под iOS *Objective C *Xcode *Swift *
✏️ Технотекст 2022

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

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

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

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

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

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

Время на прочтение 2 мин
Количество просмотров 2.3K
Разработка под iOS *Objective C *Отладка *Swift *
Туториал

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

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

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

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

Время на прочтение 4 мин
Количество просмотров 7.5K
Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *

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

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

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

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

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

Время на прочтение 2 мин
Количество просмотров 2.2K
Программирование *Objective C *Разработка под Linux *
Туториал
Из песочницы

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

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

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

Время на прочтение 8 мин
Количество просмотров 7.9K
Программирование *Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *
Из песочницы

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

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

Управление памятью в Swift

Время на прочтение 13 мин
Количество просмотров 37K
Разработка под iOS *Objective C *Swift *

Об управление памятью в iOS ходят много слухов, поэтому я собрал все самые интересные в интернете и попробовал их структурировать в один большой

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

Исправление неоднозначных ограничений без перезапуска приложения

Время на прочтение 4 мин
Количество просмотров 1.6K
Блог компании ПСБ Разработка под iOS *Objective C *Xcode *Swift *
Перевод

Примечание

Слова layout, autolayout и constraints я перевёл, соответственно, как вёрстка, автовёрстка и ограничения.

Работа с автовёрсткой

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

Interface Builder неплох как визуальный редактор вёрстки. В нём есть индикация некорректных граничных параметров. Однако ваша вёрстка может отличаться от видимой в IB. На экран приложения могут влиять различные параметры — например, ответы на сетевые запросы или локально сохранённые данные. Более того, могут быть экраны, частично или полностью построенные на информации, заданной сервером. От сервера может поступать вообще всё что угодно, в том числе шрифты, цвета и формы.

Кажется, остаётся только вручную разбирать гигантский лог ошибок автовёрстки. Но есть и другие варианты.

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

Apple убивает TeamCity, Bitrise, Appcenter, Fastlane, Firebase, Sentry и иже с ними. Краткий обзор Xcode Cloud

Время на прочтение 3 мин
Количество просмотров 14K
Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *Тестирование мобильных приложений *

Заголовок конечно громковат, может не убивает, но уменьшит им доходы точно. Давайте кратко посмотрим что представила Apple на WWDC 2021, что такое Xcode Cloud?

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

Вклад авторов