Обновить
37.94

iOS *

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

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

Как показать номер версии на экране загру…

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

Привет, Хабр! Меня зовут Сергей, и я 3 года работаю Android/iOS разработчиком. Написал с нуля приложение для фитнес-клубов (Google Play/App Store — если интересно, код под NDA, его не могу показать) и дорабатываю малоизвестный банк. За это время накопилось много интересных решений, которые выросли из доморощенных «Франкенштейнов» и теперь переношу из проекта в проект. В своих статьях расскажу о них. Кроме того, мне всегда интересно сравнивать подход в iOS и Android в аналогичных вопросах. Надеюсь, мои статьи помогут тем, кто хочет перейти с одной платформы на другую.

Любое приложение начинается с загрузки. И как оказалось, экран загрузки совсем не так прост, как кажется. То, что мы там видим — картинку, версию приложения и прочее — совсем не стандартные решения. Поэтому я решил первую статью написать именно об этом. Итак, начнём.

Читать далее

4 сценария, когда нужно сделать ставку на Kotlin Multiplatform, а не Flutter

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

Привет, это Максим Мялкин — управляющий партнёр и руководитель мобильной разработки KTS.

Кроссплатформенные- инструменты помогают бизнесу не писать код два раза под iOS и Android, а переиспользовать его на обеих платформах. В статье — о том, чем Kotlin Multiplatform отличается от Flutter и в каких случаях он переигрывает и уничтожает Flutter. 

Читать далее

LLaMA 2, RWKV, Santacoder и другие LLM на iOS

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

Однажды я решил изучить язык Swift и разработать свое первое приложение для iOS. Для этого я решил создать реальный проект, который заключался в оптимизации нашумевшего LLaMA.cpp под iOS. Я поставил перед собой задачу обеспечить запуск 3B и 7B моделей на iPhone 12 Pro с приемлемой скоростью. Под «приемлемой» скоростью я имею в виду такую, чтобы пользователь не успевал заскучать, читая предсказанный текст, пока генерируется новая часть. Что из этого получилось (и какие трудности были при реализации) читайте в статье.

Читать далее

Мобильная разработка за неделю #509 (02 — 08 октября)

Время на прочтение5 мин
Количество просмотров2.2K
В новой подборке фреймворк Observation в Swift и быстрый и безопасный DI на Kotlin, побочные эффекты Jetpack Compose и написание UX-текстов, генератор межъязыковых мостов, самые скачиваемые и зарабатывающие приложения в России и многое другое.

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

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

Вы не так готовите Kingfisher, или как самураи работают с загрузкой изображений

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

Вы не так готовите Kingfisher, или как самураи работают с загрузкой изображений

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

Читать далее

Сервисы: строим масштабируемые и гибкие приложения с помощью чистой архитектуры

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

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

Изменение API вы можете встретить в разных кейсах. От изменение протоколов взаимодействия с сетью до изменения нативных API биометрией.

Узнай как сделать приложение масштабируемым и не наступать на грабли!

Читай и не наступай на грабли ?

Мобильная разработка за неделю #508 (25 сентября — 1 октября)

Время на прочтение5 мин
Количество просмотров3.6K
В нашем новом дайджесте внедрение SwiftUI в Airbnb, диск на шейдерах и победа фрагментации, невидимые проблемы, советы к собеседованию, $20 млрд на конфетки, приложение с фотопленкой и многое другое!

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

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

Два по цене одного: snapshot-тесты на основе SwiftUI Preview

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

Привет, Хабр! Меня зовут Дима, я iOS-разработчик в компании Doubletapp, и в прошлом году я вместе со своими коллегами и командой Яндекса участвовал в разработке приложения Яндекс Путешествия. В этом проекте мы выбрали фреймворком пользовательского интерфейса SwiftUI (подробнее о том, как мы его выбрали и что из этого получилось, рассказала наша iOS-Head Полина Скалкина здесь).

На начальном этапе реализации приложения мы постоянно вносили изменения во множество вью. Это были и обновления, вызванные переработкой дизайна, и исправление багов, и оптимизации, которые мы делали по мере роста наших знаний о SwiftUI. Нам хотелось контролировать все эти изменения, чтобы еще на этапе разработки отлавливать вызванные ими ошибки верстки. Поэтому наша команда приняла решение использовать snapshot-тесты.

Что такое snapshot-тесты?
Объединение snapshot-тестов и превью
Итог

Читать далее

jenv — удобный инструмент для управления версиями Java

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

Иногда может возникнуть необходимость использовать какую-то определенную версию Java для вашего проекта. Мы тоже в Surf с таким столкнулись при работе над одним из Flutter приложений-долгожителей. Решение нашлось в виде использования менеджера версий Java. Рассказываем, что за инструмент и как с ним базово работать на MacOS.

Читать далее

Vivaldi вгрызается в яблоко: Представляем Vivaldi для iOS

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

Дождались! Вышел Vivaldi для iOS.

Мы в Vivaldi считаем, что браузер должен подстраиваться под вас, а не наоборот. Теперь мы переносим эту философию на ваш iPhone и iPad.

Являетесь вы обычным или опытным пользователем, вы получаете гибкость и универсальность просмотра веб-страниц по своему усмотрению благодаря мощным функциям Vivaldi и уникальному уровню персонализации.

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

Читать далее

Дебаггинг приложения без Xcode. Зачем?

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

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

Привет, меня зовут Владимир Петров, я iOS разработчик в Альфа-Банке. Я вам расскажу как мы сделали свой дебаг-инструмент и научились дебажить наше приложение без Xcode. Обратите внимание на статью, если думали над тем, чтобы делать свое решение или готовое — расскажу, какая там может быть функциональность.

Читать далее

Универсальные датасорсы в iOS-разработке

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

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

Универсальные датасорсы предоставляют разработчикам API для доступа к данным в коллекциях без привязки к конкретному источнику и типу данных. Они обеспечивают абстракцию, которая дает разработчикам возможность работать с данными в коллекциях независимо от их происхождения или формата хранения. Это позволяет легко изменять источник данных, добавлять новые функции и поддерживать разные типы данных в приложении.

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

Читать далее

Учимся генерировать код из OpenAPI, делать автоверсионирование, разрабатывать мобильные SDK и растить команду без ошибок

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

Всем привет от команды ЮMoney!

Делимся докладами с нашего недавнего митапа Red Hot Chili Apples для iOS-разработчиков.

Кому рекомендуем посмотреть:

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

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

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

Всем, кто хочет научиться делать идеальную маркетинговую и внутреннюю версии приложения.

Смотреть доклады

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

CD-диск на шейдерах и NameDrop в iOS 17

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

Шейдеры отлично подходят для симуляции материалов. В обычных интерфейсах мы управляем только цветом, но эффект размытия в iOS — пример материала, который совершил революцию в мобильных интерфейсах.

Описать метериал через шейдер сложно, а создать динамичный эффект — ещё сложнее. В этой статье разберём пару примеров: переливающийся диск и нашумевший NameDrop в iOS 17.

Читать далее

Мобильная разработка за неделю #507 (18 — 24 сентября)

Время на прочтение4 мин
Количество просмотров1.9K
В этом выпуске миграция на Observation и Doom на SwiftUI, современный Compose и прощание с друзьями, принципы хорошего дизайна, красоты кода, эффективного продвижения и многого другого!

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

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

Mobile MVP — minimum viable Features

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

MVP - говоря простым языком, это продукт, который готов к выходу на рынок с минимальной функциональностью чтобы достичь определенных целей. Это может быть и маркетинг, и привлечение новых клиентов, и обкатывание собственных PoC. Цели могут быть разными. Я опущу этот момент, потому что набор фичей, о которых пойдет речь дальше, закрывает 90 процентов потребностей всех целей и дает возможность на маневр. Это очень важно сделать в самом начале, чтобы не забуксовать в фазе активной разработки, дать возможность проверять свои гипотезы и не тормозить бизнес в зарабатывании денег.

Читать далее

Jailbreak checker — как обезопасить свое iOS-приложение

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

Привет! Меня зовут Тоня, я продуктовый разработчик в продукте QIWI Кошелек. Недавно мы делали задачу по предотвращению рисков в связи с использованием приложения с Jailbreak. Хочу рассказать о трудностях, с которыми столкнулись на пути, и о том, как мы их разрешили.

Кто такой этот ваш Jailbreak?

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

Дословно jailbreak переводится как «побег из тюрьмы» или «взлом». Данный термин, как правило, используется в отношении iOS. Простыми словами — это использование уязвимостей устройства для получения полного доступа к операционной системе. Из-за такого полного доступа к системе появляется и доступ до keychain, который становится уже не таким защищенным. После взлома у пользователя появляется доступ к альтернативным сторам, из которых можно скачать приложения, не проходившие ревью в App Store. Одним из самых популярных таких альтернативных сторов является Cydia, который чаще всего сразу же устанавливается в момент взлома устройства. 

Зачем его отслеживать?

Читать далее

Руководство по Использованию Многопоточности в Swift

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

Многопоточность в Swift играет критически важную роль в создании отзывчивых и эффективных приложений. В этой статье мы рассмотрим, когда и как использовать новые возможности многопоточности в Swift, включая async/await, Task и структурированную многопоточность.

Читать далее

ASO.dev — как я снова продукт для Apple делал

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

У каждого свой жизненный путь и выбор продуктов, у меня видимо какой-то фетиш делать продукты для Apple и их API... Вот уже 4-ый год как я делаю плеер для Apple Music, а 20 ноября 2022 года вместе с женой придумали и начали делать ASO.dev.

Читать далее

Перф-тесты VS аномалии. Вечная битва за производительность приложений на iOS

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

Чем больше задач выполняет приложение, тем тщательнее нужно следить за его производительностью. Под катом на примере Яндекс Браузера и приложения Яндекс с Алисой подробно расскажу о том, как мы отслеживаем аномалии метрик производительности на стороне клиента с помощью перф‑тестов: основные принципы универсальны, и вы легко сможете использовать их для других типов приложений.

А ещё вас ждёт чек‑лист, на что обратить внимание и к каким инструментам присмотреться.

Читать далее