Обновить
43.01

iOS *

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

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

Месячная заруба с Apple. Встраиваем On-Demand Resources. Часть 1

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

Поведаю вам историю в двух частях о том, как мы боролись с модерацией Apple на протяжении месяца, победили их, но всё равно решили играть по их правилам. В первой части я дам вам предысторию и способ внедрения On-Demand Resources. Во второй статье поговорим о том, как эти ресурсы связать с WKWebView и не сойти с ума.

Если ваше приложение использует WKWebView для большего, нежели открытие ссылок, то рано или поздно вы можете столкнуться с реджектом по причине Guideline 4.7 - Design - HTML5 Games, Bots, etc. Это настигло и нас в приложении Zaruba.

Читать далее

Работая в Xcode: создаем реюзабельные цветовые палитры, которыми можно поделиться

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.6K
Наш новый дайджест про Xcode 14 и оковы CocoaPods, приложения для Mi Band 7 и недоразумения Google Play, про золотой век мобильной разработки, анимацию в Duolingo, дизайн-системы и многое другое!

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

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

Как сделать удобное взаимодействие с Kotlin из Swift: решение с помощью плагина MOKO KSwift

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

Привет! На связи Алексей Михайлов, технический директор компании IceRock Development. В прошлой статье я рассказывал о том, какие проблемы есть в работе с Kotlin со стороны Swift, и рассматривал способы их решения. В этой статье подробно остановлюсь на третьем решении, которое мы используем на практике. Это Gradle-плагины, а именно плагин, который мы разработали сами.

Читать далее

Bottom sheet: Custom transitioning

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

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

В этой статье я расскажу, как мы решили задачу по созданию экрана оплаты в приложении «Кошелёк» с помощью кастомной навигации между контроллерами, которые отображаются как bottom sheet.

Читать далее

Декларативный UI: определение, история и необходимость

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

Декларативное программирование — это парадигма программирования, в которой задаётся ожидаемый результат, а не способ его получения. Об истоках этой технологии, её отличиях от императивной парадигмы и удобстве её использования рассказывает iOS-разработчик red_mad_robot Саша Евсеев.

Читать далее

Стоит ли переходить с UIKit на SwiftUI? Опыт СберМаркета

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

Привет! Меня зовут Александр Соломатов, я iOS Chapter Lead в СберМаркете. Моя команда занимается внедрением продуктовых фич в мобильное приложение СберМаркета под iOS. С 2020 года мы живём в продакшене со SwiftUI и я хочу поделиться опытом съеденных кактусов при использовании этого фреймворка. Эта статья для тех, кто размышляет над переходом с UIKit на SwiftUI, но не может решить, нужно ему это или нет. Никого убеждать всё переписать под чистую не буду, но подсвечу плюсы и минусы. Поехали!

Читать далее

Дайджест интересных материалов для мобильного разработчика #465 (7 — 13 ноября)

Время на прочтение4 мин
Количество просмотров2.3K
В новом выпуске никакое место в конкурсе Telegram и незнание стандартов, большой переезд и актуальное время, приложения на Go, собственный SDK, простое предсказание LTV и многое другое.

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

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

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

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

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

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

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

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

Читать далее

Разбираем tableHeaderView и viewForHeaderInSection на простом приложении

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

Всем привет сегодня мы разработаем простое приложение для летней кафешки и добавим tableHeaderView и viewForHeaderInSection.

Для начала посмотрим как наше приложение должно выглядеть.

Читать далее

Анимация переходов для содержимого в SwiftUI

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

Анимации переходов между представлениями (view transition) были доступны с самой первой версии фреймворка SwiftUI. Фреймворк позволяет указать определенную анимацию перехода, которая будет применяться всякий раз, когда представление удаляется или добавляется в иерархию представлений. С недавних пор фреймворк SwiftUI предлагает нам еще один тип анимаций перехода — анимации переходов для содержимого (content transition). Суть та же, что и раньше. Фреймворк теперь позволяет нам указывать определенную анимацию перехода для содержимого представления, которая будет проигрываться всякий раз, когда оно изменяется. В этой статье разберемся, как использовать новый API для анимирования переходов содержимого в SwiftUI.

Читать далее

Как сделать удобное взаимодействие с Kotlin из Swift: обзор проблем и решений

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

В июне 2022 года наш технический директор Алексей Михайлов выступал на конференции мобильных разработчиков Mobius — рассказывал о том, какие есть проблемы в работе с Kotlin со стороны Swift, и рассматривал способы их решения. Эта статья — первая часть транскрипта этого выступления.

Читать далее

Что учесть в разработке супераппа. Рассказываем на примере приложения «Мой Beeline»

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

Привет, меня зовут Санжар, я iOS-техлид в Beeline Казахстан. В iOS-разработке 6+ лет, сейчас занимаюсь развитием мобильного приложения «Мой Beeline». 

В статье поделюсь опытом становления супераппа «Мой Beeline». Это один из наших флагманских продуктов, мы уделяем ему много времени и внимания. Я расскажу о гипотезах и экспериментах, о разработке и способах решения проблем.

Напомню, что я сотрудник казахстанской компании, то есть рассказываю про казахстанский суперапп и смогу ответить на вопросы о нём. По части российского приложения «Билайн» я не эксперт.

Погрузиться в мир superapp

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

Разработка мобильных приложений на Go

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

Язык программирования Go стал настоящим открытием для разработчиков инструментов для системного администрирования и DevOps благодаря комбинации возможностей низкоуровневой разработки (и в этом он подобен C) и поддержке автоматической сборки мусора, исключению прямой работы с указателями, наличию конкуретной многозадачности (goroutines) и возможности компиляции непосредственно в исполняемый образ. Постепенно Go начал использоваться для других целей: создание веб-приложений, разработка для микроконтроллеров. Почему бы не использовать все его возможности для создания мобильных приложений? В статье мы обсудим некоторые подходы к разработке приложений на Go для мобильных устройств.

Читать далее

Сертификаты Apple. Понимание. Что это и зачем вообще нужны?

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

Сертификаты, ключи, доступы, безопасность - всё очень запутанно. Многие из нас просто знают, как решать большинство ошибок, связанных с этим, либо могут это быстро нагуглить. Сегодня хотелось бы постараться углубиться в данную тему в рамках Apple и понять, почему все так работает. Меня зовут Макс Нечаев, я Senior iOS-developer в крупном фуд-тех стартапе в Катаре - Snoonu. Очень надеюсь, что статья поможет вам немного лучше понять данную область разработки.

Сегодня поговорим о сертификатах и профилях подготовки в Swift.

Читать далее

iOS-митап в red_mad_robot 17 ноября

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

Привет всем, кто не пропускал ни одной WWDC! 17 ноября в 19:00 мы проведём iOS-митап в московском Робохранилище. Онлайн-трансляция тоже будет, ссылку на неё пришлём на почту.

На встрече поговорим про свежие технологии, доступные в новых версиях iOS, обобщённое программирование, метаморфозы архитектуры и нативную навигацию. Митап проводим для джун- и мидл-специалистов, регистрируемся тут.

Читать далее

Дайджест интересных материалов для мобильного разработчика #464 (31 октября — 6 ноября)

Время на прочтение3 мин
Количество просмотров2K
В нашем новом дайджесте делегаты и умные View, лучшие приложения и игры 2022, еженедельные релизы, качество продукта, закон о цифровых рынках, реклама в пушах и многое другое!

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

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

Каникулы — как мы это сделали

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

Мы добавили абсолютно новый функционал! Он позволяет разбивать учебный год на периоды и задавать для каждого периода каникулы, и не только.

Читать далее

RESTful запросы на основе паттерна «Команда»

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

На протяжении многих лет традиционным подходом было включение библиотек Alamofire (AFNetworking) в состав iOS приложения для осуществления RESTful запросов к бэкенду. И если в первой половине минувшего десятилетия это объяснялось использованием промышленных стандартов (а, фактически, никто не хотел заморачиваться с наборок сырых поделок, которые предоставила компания Apple из коробки), то в начале нынешнего десятилетия нет никаких аргументированных причин, чтоб ограничивать себя возможностями этой популярной библиотеки. </cut>

А ограничения, во истину, колоссальные – с точки зрения RESTful – его работа – тривиальная и предсказуемая, но вот методы использования, обусловленные Clean архитектурой Боба Мартина – вызывают дикую головную боль почти к любого разработчика, который приходит на проект. Благие намерения отделить роутинг от сериализации / десериализации приводят к невероятному разрастанию классов и зависимостей слоев, не смотря на то, что изначально, Clean архитектура декларировала то, что она предназначена для того, чтоб избегать таких зависимостей. Однажды пришлось столкнуться с ситуацией - для того чтоб добавить Post запрос необходимо было внести изменение в 11 фалов проекта!

Apple тоже заметили эту порочную тенденцию, и вместе с реализацией асинхронности через await преложила свой подход с использованием комбаина. Вот только не учла ригидности человеческой психики – те кто раньше создавали десяток слоев для выполнения сетевых запросов, сейчас сократили их до 3-4, но создали при этом синглтонный менеджер, длинной на несколько десятков тысяч строк кода.

Читать далее

Bottom Sheet API в SwiftUI

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

Два года назад я написал пост, посвященный созданию кастомного bottom sheet в SwiftUI. Сегодня же необходимости писать его вручную с нуля больше нет, по крайней мере, если вам не нужно какое-нибудь супер-уникальное поведение. SwiftUI теперь предоставляет новый API для отображения bottom sheet всего в несколько строк кода. В этом посте мы рассмотрим новый API, позволяющий нам отображать различные вариации bottom sheet.

Новый API SwiftUI для отображения bottom sheet достаточно прост в использовании. Все, что нам нужно сделать, это прикрепить модификатор представления presentationDetents к содержимому модификатора представления sheet.

Читать далее