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

iOS *

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

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

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

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

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

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

Читать далее

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

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

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

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

Поехали!

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Переход на Metal

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

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

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

Читать далее

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

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

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

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

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

В программе:

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

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

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

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

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

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

Читать далее

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

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

В этой статье я опишу способ возврата на 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 мин
Количество просмотров3.7K

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

Читать далее

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

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

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.6K
В новом дайджесте Kotlin Multiplatform на iOS, история Android и ненужные проекты, фермы Яндекса, реклама мобильных приложений и многое другое. Хорошей разработки!

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

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

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

Время на прочтение3 мин
Количество просмотров2.2K
В новом дайджесте новые виджеты и патчинг байт-кода, Cross device SDK и новый Flutter, Code Review для джуниоров, победа Коста Элефтериу, новые платежи в магазинах и многое другое!
Подключайтесь!

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

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

User-Defined в iOS проекте

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.9K
В нашей новой подборке собеседование для Senor-а и разработка на грани, анимации и рефакторинг в Slack, проблемы Agile, тестирование роботами и многое другое. Подключайтесь!

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

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

За гранью App Store, или Что нового открывает MDM и Supervised для B2B в iOS

Время на прочтение14 мин
Количество просмотров11K
Привет! Меня зовут Денис Кудинов, я iOS-Development team lead в «Лаборатории Касперского». В этой статье расскажу об Mobile Device Management, а также о supervised- и BYOD-режимах — как работает технология и что с ее помощью можно сделать такого, что недоступно обычным приложениям из App Store. Считайте это презентацией возможностей Configuration Profiles, да и Apple MDM в целом :)

image

Статья будет полезна разработчикам B2B-приложений для iOS, которые хотят разбавить свои инструменты новыми фичами, а также для product owner-ов и бэкенд-разработчиков, которые хотят поддержать взаимодействие с мобильными устройствами.
Читать дальше →

Как мы писали приложение для доставки из ресторанов

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

В феврале 2021 года ВкусВилл запустил проект «Сгоряча» по доставке блюд из более 50 «dark kitchen» в Москве, Санкт-Петербурге, Волгограде, Чебоксарах и других городах. Сейчас через приложение можно заказать также еду из ресторанов-партнеров. Блюда бесплатно доставляют собственные курьеры сети  в среднем за 1-1,5 часа после оформления заказа.

Доставок из «dark kitchen» не так много — всего 3-4 агрегатора доставляют блюда. Это нетривиальная задача: нужно наладить работу курьеров, разработать приложения для партнеров, курьеров и клиентов, подключить партнеров и обучить их пользоваться доставкой, продумать архитектуру на случаи загрузки — много всего.

За создание и развитие мобильных и веб-сервисов ВкусВилл отвечает команда «Фулстек» (направление ГК «Автомакон», специализирующееся на мобильной и веб-разработке). Подробнее расскажем, как мы сделали 3 небольших доработки для сервиса по доставке блюд из ресторанов, как он работает и с какими сложностями нам пришлось столкнуться в процессе.

Читать далее