Обновить
63.27

iOS *

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

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

Создание анимаций для навигации в iOS

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

Всем привет! Я хочу поделится своим опытом реализации кастомных переходов между экранами в iOS. Несмотря на то, что тема эта достаточно популярная, и очень многие дизайнеры хотят привнести в процесс перехода какую-то свою изюминку (затемнение, параллакс и т. п.), реализация этих вещей не очень тривиальна. Я попробую разложить все по полочкам. Рассмотрим сначала стандартное решение, которое не особо гибкое, но зачастую достаточное для многих проектов. Затем реализуем полностью кастомное и контролируемое исключительно нами решение.

Итак, погнали!

Мы создали два курса по мобильной разработке, и вот чем они интересны

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

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

Летом в Яндекс Практикуме стартовало два курса по мобильной разработке: «Android-разработчик» и «iOS-разработчик». О том, что особенного в каждой программе, мы поговорили с командой Практикума, которая их создавала.

Читать далее

Как мы улучшали функциональность онлайн-кинотеатра на tvOS

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

Всем привет, меня зовут Валерия Рублевская и я iOS-разработчик на проекте онлайн-кинотеатра KION в МТС Digital. Это третья часть рассказа о фиче Autoplay и сегодня мы поговорим о нюансах ее реализации на tvOS.

Хотите подробностей? Добро пожаловать под кат!

Читать далее

Прогулка по изнанке «Спортмастера»: ножками и в приложениях

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

Зашёл я (@Lavs) в «Спортмастер», чтобы купить себе футбольный мяч. В этом деле мне помогла сотрудница Ксения: задала пару вопросов, отвлеклась на смартфон и через минуту протянула подходящий мячик.

Я знал, что на экране у Ксении был не мессенджер с подружками, а внутренние приложения магазина. Дело в том, что в «Спортмастер» я пришёл не только за мячиком. Хабр отправил меня с редакционным заданием: разобраться, как устроена технологическая начинка магазина.

Ребята из SM Lab (IT-компания «Спортмастера») сейчас ищут Android- и iOS-разработчиков. Под катом речь пойдёт о том, чем занимаются команды мобильной разработки: а они ни много ни мало обеспечивают работу всех 533 розничных «Спортмастеров».

Читать далее

Логи в iOS, эпизод 2: os_signpost

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

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

Сегодня расскажу, как Apple предлагает решать эту проблему с помощью логов.

Читать далее

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

Время на прочтение4 мин
Охват и читатели2.2K
В нашей новой еженедельной подборке история Goose Maps и WebView, продолжение неочевидного про Fragment API, перепады высот, эмуляторы, симуляторы, тестовые фермы и многое другое!

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

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

Auto Layout настройка кодом

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

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

Ограничение(constraint) - это правило, позволяющее операционной системе размещать ваш компонент пользовательского интерфейса. В UIKit есть 2 основных способа установки ограничений:  StoryBoard и кодом. В данной статье рассмотрим только подход кодом.

Читать далее

WebView: забыть нельзя интегрировать

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

При разработке мобильного приложения iOS или Android рано или поздно может встать вопрос: «Реализовать фичу на WebView или же нативно?». В некоторых случаях ответ лежит на поверхности, но, к сожалению, так бывает не всегда. А если очень велик соблазн предоставить пользователям новый функционал поскорее — это может склонить к неправильному решению, с которым впоследствии предстоит что-то сделать.

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

Поехали!

История Goose Maps, первых автономных офлайн карт для Apple Watch

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

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

Читать далее

Логи в iOS, эпизод 1: os_log

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

Представьте, что вы садитесь делать новый проект для iOS/iPadOS/macOS/tvOS/watchOS. Совсем скоро сталкиваетесь с первым багом и, чтобы его понять и исправить, добавляете логи — вызываете print() тут и там. Баг исправили и часть логов убрали, а часть оставили на будущее — полезные, ещё пригодятся.

Спустя пару месяцев работы над проектом консоль в Xcode превращается в водопад из логов. В них сложно разобраться и в них невозможно ориентироваться. Вы принимаете это как данность и в новые логи для удобства добавляете какие-то маркеты по типу "----->" или ещё что-нибудь в этом духе — так их можно будет различить в бесконечном потоке.

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

В этой статье расскажу, как Apple предлагает решать такую проблему.

Читать далее

Пишем библиотеку для запроса оценки в AppStore

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

? Всем привет. Меня зовут Алексей Межевикин. Я iOS-разработчик c 2011 года. Последнии 4 года занимаюсь разработкой, монетизацией и продвижением своих приложений.

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

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

Читать далее

Пишем типизированный DI-контейнер для iOS приложения. Часть 1

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

Привет, читатель! Меня зовут Александр, я техлид iOS в KTS.

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

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

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

Если вы готовы, погнали! ?

Читать далее

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

Время на прочтение4 мин
Охват и читатели2.7K
В нашем новом дайджесте переход на Metal и динамические острова, сложность корутин и диплинков, всплывающие окна, A/B-тесты, маркетинг eCommerce приложений, мобильные финансы и многое другое.

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

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

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

Жизнь выдающихся программистов. Джей Фриман (saurik)

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

Прошлая серия про талантливую программистку Джастин Танни не оставила равнодушной хабрасообщество. Поэтому продолжаем заполнять нижние строчки хит-парада выдающихся программистов 21 века. Это особенные личности, которым карьера как будто не важна. В силу высокого IQ, врождённой любознательности и особого характера они не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

Следующий герой — более публичный и известный персонаж, про него даже есть статья в Википедии. Гений реверс-инжиниринга Джей Фриман известен под ником saurik, а славу ему принёс каталог «запрещённых» приложений Cydia (для взломанных айфонов).
Читать дальше →

Переход на Metal

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

Мы закончили регрессионное тестирование и со дня на день собираемся начать раскатывать на бой релиз с включенным Metal. Зачем мы это делаем и как всё происходит — рассказываем в статье. 

Причина первая: уход на пенсию OpenGL для iOS/OSX. В 2018 году Apple объявили, что прекращают поддержку этого графического API, и это только вопрос времени, когда они удалят его из своих операционок и запретят выкладывать в App Store приложения, использующие GLES (OpenGL for Embedded Systems — подмножество API OpenGL для встроенных систем, например, мобильных устройств). А кому надо впопыхах интегрировать незнакомый API? Правильно, никому. Плюс, нет-нет да и случаются какие-то неприятные падения где-то под капотом OpenGL, починка которых сводится к мольбам, что очередной точечный фикс кода всё исправит.

Читать далее

Приглашаем на мобильный митап от команды СберМаркет Tech

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

Привет! На связи tech-команда СберМаркета. Приглашаем iOS и Android-разработчиков на наш первый офлайн-митап. Он пройдёт 29 сентября в 19:00 в офисе СберМаркета в Москве с пиццей и новыми знакомствами.

Это встречу мы организуем вместе с сообществом Coffee&Code, так что кроме докладов в программе будет сюрприз от ребят. Спойлер: это игра :)

Если у вас не получается прийти на митап в офлайне, присоединяйтесь к онлайн-трансляции.

В программе:

? Александр Соломатов, руководитель группы iOS-разработки в CберМаркете, расскажет про горизонтальную карусель для баннеров.

? Евгений Прокопьев, Android-разработчик в CберМаркете, покажет как работать с анимациями в React Native.

? Валерий Скворцов, iOS-разработчик в СберМаркете, поделится результатами экспериментов с механизмом избегания клавиатуры в SwiftUI.

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

Регистрируйся бесплатно по ссылке.

Ждём тебя на митапе!

Читать далее

Как вернуть в iPhone СберБанк, СберБизнес, Аэрофлот и прочие пропавшие из App Store приложения

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

В этой статье я опишу способ возврата на iPhone приложений, которые исчезли из App Store и не смогли автоматически установиться на новый смартфон на базе iOS при переезде или восстановлении из резервной копии.

Я использую приложение Сбербанка, поэтому при переселении образа на новый iPhone я, как и тысячи пользователей забаненных приложений, столкнулся с тем, что несколько программ остались на смартфоне только в виде ярлычков. При попытке запустить такое приложение выдавалось сообщение о том, что приложение отсутствует в App Store, и у пользователя два варианта: оставить ярлык до лучших времён или удалить его с рабочего стола.

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

Читать далее

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

Время на прочтение4 мин
Охват и читатели2.3K
В нашем новом дайджесте открытие Live Activity и ActivityKit, анализ Android-приложений и Flutter 3.3, логи, скука, мобильный CI, приключения BeReal и многое другое!

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

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

Ionic get started: что важно знать до начала разработки первого приложения

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

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

Читать далее

ВКС-дайджест: уход Avaya, транскрипция с русского, бесплатная версия Teams для переговорных

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

Продолжаем выборочно публиковать новости из нашего телеграм-канала

Читать далее