Как стать автором
Поиск
Написать публикацию
Обновить
37.03

iOS *

Мобильная ОС компании Apple

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

Мобильная разработка за неделю #489 (15 — 21 мая)

Время на прочтение4 мин
Количество просмотров2.6K
В нашем новом дайджесте безопасная локализация и многомодульные приложения, перформанс 2ГИС и дизайн система Tinder, паттерны проектирования, все видео осеннего Mobius, эффективные интерфейсы, доходы приложений и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Как я преподавал на ИТ-курсах: буст софтов или потраченное время

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

Привет, читатель! Сегодня я расскажу о своём опыте преподавания. Я обычный разработчиĸ, в начале этого года читал лекции по архитектуре на IT-курсах. 

Если ты уже пробовал обучать, в статье сможешь сверить ощущения. А если только задумываешься стать преподавателем, найдёшь ответы о нагрузĸе и мотивации. Пробежимся по пунктам: что тебя ждёт, кроме лекций, сколько времени уйдёт, и в конце ты сможешь осознанно ответить — нужно ли тебе это.

Читать далее

Многомодульное iOS-приложение: подходы к организации межмодульного взаимодействия

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

Привет, Хабр. Меня зовут Кирилл Смирнов. Я технический лидер iOS команды в СберЗдоровье. Последний год наша команда активно занимается улучшением инструментов разработки, в том числе модуляризацией, и уже успела получить опыт, который может быть полезен другим. В предыдущем материале я рассказывал, как компании подготовиться к модуляризации iOS приложений, а в этом остановлюсь на вопросах оптимизации сборки проекта и выборе вариантов линковки артефактов компиляции.

Читать дальше →

Что известно об iPhone 15?

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

Apple представит новые смартфоны уже в сентябре. Судя по «сливам», в этом году, как и в прошлом, в линейку iPhone войдут четыре модели: две — навороченные и дорогие, и две — попроще. Многое о них уже известно, собрали утечки от наиболее авторитетных ресурсов и инсайдеров.

Читать далее

Использование Command Line Tool на Swift в iOS проекте

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

Не так давно на проекте возникла необходимость настроить периодическое обновления информации со стороннего сервиса. В моем случае это был файл‑справочник в формате JSON, хранящийся в Bundle приложения, и ещё Info.plist в придачу. Отмечу, что такие файлы нельзя изменять в запущенном iOS приложении. Да и вообще, вызовы напрямую в сторонний сервис уже в рантайме меня не сильно радовали — в случае сбоя загрузки данных у приложения отваливался кусок функциональности.

Как бы вы поступили в этом случае? Вынесли бы кэширование таких файлов на ваш бэк? Таким образом мы бы решили проблему со сторонним нестабильным сервисом, но что делать с Info.plist?

Первое, что приходит в голову — написать Shell‑скрипт. Но это могло привести к проблемам с поддержкой другими iOS разработчиками. Поэтому было принято решение создать утилиту на Swift.

В сети много материала по созданию Command Line Tool на Swift, но мы разберем абстрактный пример создания такой утилиты сразу в связке с iOS проектом.

Читать далее

ChatGPT и чтение книг в оригинале

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

Представьте приложение, в которое вы можете загрузить любую книгу на иностранном языке. При чтении вы будете нажимать на любое незнакомое слово, а приложение будет вам выдавать не кучу переводов из словаря, а предложит перевод, который соответствует контексту. А при переводе устойчивого выражение приложение не просто переведет его, а предложит вам объяснение этой фразы, привязанное к контексту. Ниже я покажу как оно работает.

Читать далее

Мобильная разработка за неделю #488 (8 — 14 мая)

Время на прочтение3 мин
Количество просмотров2.6K
В нашем послепраздничном дайджесте новости с I/O 2023 и тёмная сторона Mac App Store, положение SwiftUI и подготовка к Swift 6, разбор Android 13, самое чистое проектирование, отказ от микросервисов в Amazon, заработок чатботов и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Четыре платформы — один код. Что такое Compose Multiplatform?

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

Разработчики давно грезили о возможности писать кроссплатформенный код — такой, который запускался и работал бы одинаково в любой операционной системе любой архитектуры. Сегодня принципом «Write once, run anywhere», когда-то прогремевшим в связи с появлением языка Java, трудно кого-либо удивить. И все же есть ниша, в которой не так много кроссплатформенных технологий: это UI-разработка.

Не будет преувеличением сказать, что на сегодняшний день есть только два UI-фреймворка, которые позволяют запускать один и тот же UI на разных платформах и широко представлены на рынке: React Native и Flutter. Казалось бы, чего еще желать? Сразу две технологии предоставляют возможность шарить UI-фичи между платформами и прекрасно с этим справляются. Но эта статья — не о них, а об их младшем собрате, удобном и мощном инструменте мобильной и десктопной разработки — Compose Multiplatform.
Читать дальше →

GptGram — приложение для создания контента, на базе ИИ OpenAI GPT-4 и Midjourney V5

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

Не знаю как вы, но я часто испытываю трудности в создании увлекательного контента для своей страницы в Instagram. Я долго подбираю слова с которых хотел бы начать, собираю дополнительную информацию, чтобы насытить пост содержанием. Иногда одна только мысль о том, что надо что-то написать, вгоняет в уныние и усталость. Это я еще не говорю про то, что надо подобрать качественный и уникальный визуал. В общем, я тоже подсел на волну вау эффекта от ChatGPT и Midjourney, и решил разработать некий инструмент, который позволил бы мне создавать контент для Instagram от моего лица быстро и просто, а также желательно в одном месте и всегда под рукой. Собственно, о том что получилось дальше и пойдет речь.

GptGram — iOS приложение. Это персональный помощник в создании контента для Instagram, работающего на базе передовых технологий искусственного интеллекта: OpenAI GPT-4 для генерации текста и Midjourney V5 для создания изображений.

Читать далее

Готовим наши приложения к Swift 6

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

К сожалению, как нам пояснил Дуг Грегор (Doug Gregor) из Swift Language Workgroup, Swift 6 все-таки не успеет увидеть свет в 2023 году. Но знали ли вы, что Apple уже зарелизила некоторые части Swift 6 в версии 5.8? Да, вы не ослышались. Эти части нового Swift поставляются с Xcode 14.3, но они по умолчанию отключены. Они заработают сразу после выхода Swift 6, что может занять еще один год или даже больше.

Эти фичи вносят ряд критических изменения в Swift, в основном из-за переименования общеизвестных API, корректировки их поведения и добавления новых проверок безопасности в компилятор. Все это в какой-то момент будет активировано с целью помочь улучшить нашу кодовую базу. И нам обязательно придется обновлять наши проекты, чтобы они не поломались из-за этих изменений.

Я решил, что было бы неплохо включить все фичи в моих текущих проектах уже сейчас, чтобы увидеть, есть ли в моей кодовой базе какие-либо критические изменения, о которых мне следует позаботиться. И, конечно же, таким образом я бы смог попробовать некоторые новые фичи, такие как BareSlashRegexLiterals, что дает нам возможность краткой инициализации регулярных выражений с помощью литерального синтаксиса  (/.../).

К счастью, в Swift 5.8 есть легкий универсальный способ активировать все эти опции: нам просто нужно передать в Swift флаг -enable-upcoming-feature, прописав его в OTHER_SWIFT_FLAGS настройках сборки нашего проекта в Xcode. А также нам нужно знать, какие именно фичи нам доступны, но я не смог найти хорошего комплексного обзором (по крайней мер пока). Предложение, в рамках которого был добавлен этот унифицированный способ активации, содержит такой список, но он не обновляется более новыми опциями, добавленными позже, как, например, в SE-0384. Так где же мы можем получить достоверный актуальный список всех поддерживаемых опций?

Читать далее

Мобильная аналитика в hh.ru и не только

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

В любом мобильном приложении нужно четко понимать, как с ним взаимодействует пользователь. Для этого добавляется аналитика, по которой мы можем отслеживать различные действия пользователя внутри приложения. Меня зовут Тимур Шафигуллин, в этой статье я расскажу, как устроена мобильная аналитика вообще и в hh.ru в частности.

Читать далее

Swift async/await на примерах

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

В предыдущей части мы разобрали преимущества работы с async/await по сравнению с GCD. В этой части мы более подробно рассмотрим ключевые слова async и await (и не только). Разберемся в том, как они работают, что означает "неблокирующее ожидание" и самое главное рассмотрим это все на примерах.

Читать далее

Как стать iOS-разработчиком?

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

Привет! На связи KTS и наш эксперт по направлению iOS-разработки Александр.

Мобильные устройства помогают оставаться на связи с друзьями, работать, развлекаться и повышать продуктивность. iOS, несмотря на введенные санкции и сокращение продаж техники в РФ, остается популярной платформой, пользователи которой ожидают качественные и стабильные приложения для смартфонов, планшетов, умных часов и ТВ‑приставок.

Насколько востребована позиция iOS‑разработчика на рынке РФ, какие риски с выбором этого направления для старта карьеры наиболее актуальны, что именно надо изучать и где искать нужные материалы — в этой статье.

Читать далее

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

Мобильная разработка за неделю #487 (1 — 7 мая)

Время на прочтение3 мин
Количество просмотров2.9K
В новом выпуске обучение iOS-разработке и цена управления памятью, правила дизайна и гниение кода, бэкенд, мобилки, ремесло, гвозди, зоопарк трансформеров и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Swift Power Assert

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

Power asserts (также известные как диаграммированные утверждения) дополняют ваши ошибки утверждений информацией о значениях, полученных во время оценки условия, и представляют ее в легко усваиваемой форме. Power asserts являются популярной функцией Spock (а позже и всего языка Groovy независимо от Spock), ScalaTest и Expecty.

Power asserts предоставляют описательные сообщения об утверждениях для ваших тестов, подобные следующим примерам:

Читать далее

Из дальнобойщика — в IT: приключение, где нужно быстро учиться и работать без выходных

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

63 часа работы в неделю, три выходных за полгода и подвешенное состояние гастарбайтера: меня зовут Мустафа Бекиров, мне 23 и я вкатываюсь в IT. Работаю дальнобойщиком 1,5 года, а в перерывах между грузами почитываю Хабр. Никогда официально не учился на программиста, но полгода назад всё-таки смог прорваться в IT, стал разработчиком под iOS, и пока полёт нормальный. Решил рассказать свою историю. Может, кому-то она будет полезной или интересной.

Отправиться в приключение

CoreData для базовых задач одним методом

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

Когда на iOS возникает вопрос о какой-то оффлайн работе, часто разработчики обращают свой взор на CoreData — фреймворк, который управляет хранением данных в приложении. В идеальном мире использование CoreData сводилось бы к нахождению необходимых объектов, их изменению и вызову метода сохранения без головной боли. 
Однако, фреймворк имеет высокий порог входа и много неочевидных моментов, которые обязательно всплывут при масштабировании приложения. Но насколько можно приблизиться к тому идеальному миру, обрисованному ранее? В этой статье я поделюсь своим опытом работы с CoreData, и предложу решение, упрощающее работу с ней практически до вызова одного универсального метода для базовых нужд изменения и сохранения данных, попутно рассказав, какие фишки CoreData рассматривались как вариант достижения этой цели.

Читать далее

React Native vs нативные языки программирования: что выбрать бизнесу?

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

Современные технологии – это истинное благо для любого бизнеса. Но точно так же они могут стать самым настоящим проклятьем. Только представьте. Вы захотели создать собственное мобильное приложение. Идея уже есть, спонсоры найдены, и, казалось бы, выпускай себе приложение и покоряй им мир стандартными «Efficiency, Resilience and Innovation • Trust • Human-Centered approach • Passion • Excellence». Но в действительности все оказывается куда сложнее. Вы приходите к специалистам и не понимаете, кого слушать. Одни наперебой убеждают вас, что приложение стоит сделать на технологии React Native, а другие упорно доказывают, что нет лучшего решения, чем разработка на Swift/Kotlin. Звучит знакомо? Тогда эта статья точно вам поможет.

Читать далее

Как я разрабатывал кастомный Segmented Control на SwiftUI

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

Системный Segmented Control - это хорошо и удобно. Но когда доходит до его кастомизации, проще написать свой гибкий компонент с нуля. В этой статье история разработки своего segmented сontrol'а, переросшего в отдельную внешнюю зависимость, с ожидаемыми и не очень сложностями.

Читать далее

Мобильная разработка за неделю #486 (24 — 30 апреля)

Время на прочтение4 мин
Количество просмотров2.6K
В нашем новом дайджесте подготовка к собеседованию и оптимизация для сетевой доступности, тестирование с Robolectric и “подводные камни” Jetpack Compose, плохие MVx архитектуры и даже конец программирования, каким мы его знаем.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →