Обновить
62.63

iOS *

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

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

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

Время на прочтение3 мин
Охват и читатели3.2K
На этой неделе у нас новая Google I/O, доступность iOS, банки и штаны, автотесты и разумные A/B-тесты, методы атрибуции, свободная Цивилизация и многое другое.

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

Обертки свойств в Swift с примерами кода

Время на прочтение9 мин
Охват и читатели12K

Property Wrappers (Обертки Свойств) в Swift позволяют извлекать общую логику в отдельный объект-обертку. С момента представления во время WWDC 2019 и появления в Xcode 11 со Swift 5 было много примеров, которыми поделились в сообществе. Это изящное дополнение к библиотеке Swift, позволяющее удалить много шаблонного кода, который, вероятно, все мы писали в своих проектах.

Историю об обертках свойств можно найти на форумах Swift для SE-0258. В то время как целесообразность их использования в основном говорит о том, что обертки свойств являются решением для @NSCopying свойств, есть общая закономерность, которая реализовывается ими, и вы, вероятно, скоро все узнаете.

Читать далее

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

Время на прочтение3 мин
Охват и читатели2.8K
В этом дайджесте процесс загрузки iPhone и организация стриминга на нем же, борьба App Store с разработчиками мошенниками, концепции Jetpack Compose и обзор Android Automotive OS, этический антидизайн, вопросы АТТ-согласия и многое другое.

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

Построение графиков в SwiftUI

Время на прочтение3 мин
Охват и читатели5.4K

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

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

Выбор пал на SwifUI-Charts, который предлагает действительно красиво выглядящие графики и простую интеграцию.

Читать далее

Фантомные типы в Swift

Время на прочтение3 мин
Охват и читатели4.2K

Не каждый язык со статической системой типов обладает такой строгой типобезопасностью, как Swift. Это стало возможным благодаря таким особенностям Swift, как фантомные типы (phantom types), расширения универсальных типов и перечисления со связанными типами. На этой неделе мы узнаем, как использовать фантомные типы для создания типобезопасных API.

Читать далее

Мобилка hh.ru теперь и в Беларуси: как жить, когда команду раскидало

Время на прочтение5 мин
Охват и читатели9.8K

Долгие годы наша разработка изобретала и создавала новые решения в HR-tech строго из московского офиса. Но последний год многое изменил: мы не только научились работать удаленно по всей России, но и обзавелись крутой командой в нашей белорусской сестрице rabota.by

Мы пообщались с лидом всея мобилки hh.ru Сашей Блиновым и разработчиками из Беларуси, чтобы в этой статье рассказать вам, с какими вызовами сталкивается IT в Синеокой, почему в Беларуси отдельное мобильное приложение и как жить, когда твоя команда располагается в разных странах. 

Читать далее

Видео-стриминг на iOS по RTMP

Время на прочтение6 мин
Охват и читатели7.1K

Недавно получил интересную задачу в работу, сделать приложение для видео-стриминга, это для стартапа ShopStory (e-comm live streaming). Первую версию приложения реализовал используя Open Source библиотеку для стриминга по RTMP HaishinKit. А вторую версию на Larix SDK. В этой статье разберу какие проблемы возникали в процессе.

Читать далее

Core Data + Repository pattern. Детали реализации

Время на прочтение13 мин
Охват и читатели8.9K

Всем привет! Данный пост рассчитан на людей, которые немного знают о том что такое Core Data. Если вы не один из них, прочитайте краткую информацию тут и присоединяйтесь! Прежде всего, мне хотелось бы поделиться своим взглядом на некоторые проблемы и подходы к организации работы с данными в IOS приложениях, надеюсь - это будет как минимум интересно, а может даже и полезно. Поехали!

Читать далее

Процесс загрузки iPhone. Часть 1: Boot ROM

Время на прочтение14 мин
Охват и читатели26K

Мне показалось интересным поделиться с сообществом информацией о внутреннем устройстве техники Apple, так как статей на эту тему крайне мало. Начать я решил с iPhone. Поэтому предлагаю вам вместе со мной попробовать разобраться в работе этого загадочного девайса.

Почитать

Flutter Flavoring in a breeze

Время на прочтение8 мин
Охват и читатели8.7K

Хотелось ли вам иметь несколько версий одного приложения?

Чтобы одной командой вы могли собрать приложение под определенное окружение?

Сталкивались ли вы с тем, что одновременно нельзя было установить несколько версий одного приложения на одном устройстве?

Всем привет!

Меня зовут Андрей!

И в этой статье я расскажу, как настроить сборку приложения для разных окружений.

Читать далее

Как внедряли Kotlin Multiplatform в Профи

Время на прочтение7 мин
Охват и читатели15K

Привет, Хабр! Я Миша Игнатов, тимлид в компании Профи. Моя команда отвечает за клиентские мобильные приложения на Android и iOS. Мы используем Kotlin Multiplatform в production с 2019 года. Расскажу, почему мы выбрали именно эту технологию, как внедряли её, какие ключевые этапы прошли и какие сделали выводы.

Читать далее

Построители результатов в Swift: описание и примеры кода

Время на прочтение10 мин
Охват и читатели4.8K

Построители результатов (result builders) в Swift позволяют получать результирующее значение из последовательности компонентов — выставленных друг за другом «строительных блоков». Они появились в Swift 5.4 и доступны в Xcode 12.5 и более поздних версиях. Ранее эти средства были известны как function builders («построители функций»). Вам, вероятно, уже приходилось использовать их при создании стеков представлений в SwiftUI.

Должен признаться: поначалу я думал, что это некая узкоспециализированная возможность Swift, которую я никогда не стану применять для организации своего кода. Однако стоило мне в ней разобраться и написать небольшое решение для создания ограничений представления в UIKit, как я обнаружил, что раньше просто не понимал всю мощь построителей результатов.

Читать далее

Вас заметили! App Tracking Transparency (ATT) для iOS 14.5

Время на прочтение3 мин
Охват и читатели20K

Недавно вышла iOS 14.5, а чуть ранее Apple предупредила разработчиков, что начиная с этой версии ОС необходимо поддерживать фреймворк AppTrackingTransparency, который позволяет получить доступ к IDFA.

Читать далее

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

10 расширений Swift, которые мы используем на Livefront

Время на прочтение11 мин
Охват и читатели4.6K

Добавьте в Swift свою собственную изюминку

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

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

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

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

Стремясь к тому, чтобы содержание ниже было относительно кратким, я не включил в описание наши юнит-тесты.

Вы можете найти Xcode Playground, используемый в этой статье, на моей странице GitHub.

Вот только 10 из многих расширений, которые мы используем в Livefront.

Читать далее

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

Время на прочтение3 мин
Охват и читатели2.8K
Уходим на длинные выходные с новой подборкой интересных статей и новостей. В ней библиотеки и борьба с Apple, карточки ВКонтакте и качество кода, Flutter и Kotlin, умение заканчивать проекты, понимать путь клиента и многое другое!

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

Йога глазами дата-сайентиста: как мы строили computer vision в мобильном приложении

Время на прочтение10 мин
Охват и читатели14K

Привет! Я Денис Соколов, руковожу R&D в Zenia Yoga — первом приложении для йоги на основе ИИ. В этой статье я расскажу, из чего состоит современная система, работающая с компьютерным зрением: как влияет каждый элемент пайплайна на конечный результат, который видит пользователь. Мы пошагово разберем создание модели для human pose estimation и сравним ее с готовыми «коробочными» решениями от производителей мобильных платформ, а также открытыми аналогами.

Читать далее

Сервис для UX-тестирования мобильных приложений за 45 часов: результаты онлайн-хакатона с Oprosso

Время на прочтение5 мин
Охват и читатели1.6K

Привет, хабр! Представь что ты Usability-специалист, разрабатываешь UX для мобильного приложения с 10 000+ активными пользователями в день в час. Тебе необходимо постоянно тестировать его на большом количестве респондентов. Желательно без встраивания скриптов в исходный код приложения (какая служба безопасности тебе его выдаст?).

К чему это все? Дело в том, что Oprosso вместе с нашей командой Phystech.Genesis с 16 по 18 апреля провели онлайн-хакатон Hack.Genesis_online_, посвященный поиску подходов к решению задачи UX-тестирования мобильных приложений. 

Если ты не знал, то Oprosso создает продукты, которые помогают управлять клиентским опытом и проводить сложные исследования в онлайне, чтобы лучше понимать поведение людей в цифровых каналах, изучать их отношение к брендам, продуктам, сервисам.  Поэтому задача для них особенно актуальна. 

На хакатон мы получили 305 заявок из 13 городов и 4 стран! После долгих обсуждений и подсчетов баллов было отобрано 12 лучших команд (52 человека) для решения задачи. К нам пришли специалисты из разных сфер: мобильные разработчики, аналитики, дизайнеры, проектные менеджеры. И всем было интересно пройти этот челлендж!

Читать далее

Переход вашего приложения на модули пакетов Swift

Время на прочтение3 мин
Охват и читатели3.8K

Приложения с течением времени будут разрастаться и без хорошей архитектуры, станут неуправляемыми и сложными в обслуживании. Здесь, в OkCupid, мы решили, что лучший способ обеспечить чистый код и хорошую организацию — это разбить кодовую базу на легко управляемые части. К счастью, Apple создала отличный инструмент, чтобы упростить эту задачу.

Читать далее

Мечтал стать сценаристом, а стал программистом

Время на прочтение9 мин
Охват и читатели7.3K


Привет! Меня зовут Михаил и год назад я стал iOS-разработчиком в компании ЦФТ. До этого почти 8 лет я проработал в сфере логистики и таможенного оформления, а айосером меня можно было назвать разве что из-за наличия iPhone.


Я хочу поделиться своим опытом. Зачем? Меня такие истории мотивировали на старте, и, возможно, именно мой опыт не даст кому-то опустить руки. Моя история не из разряда «как стать джуном за два месяца», а о том, как не соскочить в этом марафоне.


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

AppCode 2021.1: улучшения поддержки Swift Package Manager и быстродействия, обновление плагина Kotlin/Native и другое

Время на прочтение2 мин
Охват и читатели2.1K

Всем привет! 

Все IDE от JetBrains уже обновились, мы же в AppCode немного задержались, проверяя очередные улучшения в кэшировании. Но вот и у нас вышел первый релиз в этом году — AppCode 2021.1! 

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