Обновить
41.31

iOS *

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

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

Как я стал iOS разработчиком

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

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

Понеслась.

Первые мысли об IT

Впервые я задумался об IT когда посмотрел видео Дудя «Как устроена IT‑столица мира». Данное видео меня сильно вдохновило, но не мотивировало к изучению. В то «ковидное» время я сменил работу и стал работать в крупной компании подключая корпоративным клиентам интернет. Моя работа никак не была связана с программированием. После прохождения испытательного срока в 3 месяца и ровно за 3 недели до моего тридцатилетия я с ужасом осознал, что не хочу всю жизнь бродить по пыльным и загаженным подвалам/чердакам, чтобы протянуть кусок кабеля. Расти в компании мне не хотелось, работа не приносила удовольствие, а наоборот только угнетала. Каждый мой день был крайне непростым, да и денег это приносила ежемесячно от 35 до 80к. А ведь мне почти 30 лет.. жена, ребенок.. в отпуске последний раз был 5 лет назад. Осознав всю печальность ситуации я начал действовать.

Выбор языка программирования

Начал с того, что пересмотрел все видео на Youtube начального уровня (на русском языке) с названиями типа «Как стать разработчиком/программистом», «Как выбрать язык программирования», «Сколько зарабатывают программисты» и т. д. Приступив к выбору языка я знал лишь 2 вещи: мне нравятся игры и техника Apple. Встал выбор: Objective‑C или Swift. После долгих раздумий я выбрал Swift, как более перспективный.

Читать далее

Kotlin Multiplatform перешёл в stable. Что это значит?

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

Привет! Меня зовут Максим, я руководитель мобильной разработки в KTS.

1 ноября состоялся релиза Kotlin 1.9.20, beta компилятора k2. 

Но для нас интереснее глобальное изменение статуса KMP. Мы используем эту технологию в мобильной разработке и написали про неё несколько статей.

В статье подробнее рассмотрим, что изменилось в технологии с переходом в релиз.

Читать далее

Как создать интерактивные виджеты на iOS 17

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

5-9 июня 2023 года состоялась ежегодная презентация Apple WWDC23, на которой было представлено много интересных новшеств для iOS-разработчиков. Одну из таких фич — интерактивные виджеты, мы рассмотрим в этом руководстве.

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

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

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

Читать далее

Vivaldi 6.4 для iOS — Опытная унификация

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

Ранее, в сентябре этого года, мы представили наш браузер для iOS и были завалены положительными отзывами об уникальных функциях Vivaldi на вашем iPhone и iPad.

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

Читать далее

Мобильная разработка за неделю #512 (23 — 29 октября)

Время на прочтение5 мин
Охват и читатели3K
В новом дайджесте изучаем Swift OpenAPI Generator и работу Spotify на Bazel, вспоминаем 15 лет Android и обозреваем невизуальную доступность, внедряем карты, пишем бесполезные программы, возвращаемся к Windows Phone и многое другое!

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

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

Keyboard Layout Guide

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

При разработке приложений для iOS мы часто сталкиваемся с проблемами, когда клавиатура iPhone выдвигается вверх и закрывает UITextField / UITextView

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

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

До iOS 15 было несколько способов решить проблему когда клавиатура перекрывает UITextField / UITextView или другие элементы.

Можно было вынести в свойство или аутлет нижний констрейнт перекрываемого элемента. Подписаться на уведомления.

Читать далее

От Style Transfer до диффузии: эволюция визуальных эффектов на смартфонах

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


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


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

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

SwiftUI: от сомнений к успешному внедрению

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

Всем привет, меня зовут Фарид Хусаинов, я тим-лид команды мобильной разработки Банки.ру. Мы делаем iOS-приложения компании Банки.ру, а именно – наше основное приложение и приложение, посвященное страхованию.

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

Читать далее

Готов ли Swift OpenAPI Generator для продуктивного кода?

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

Привет! Меня зовут Андрей, я iOS-разработчик приложения «Пункт Ozon». С помощью него сотрудники пунктов выдачи Ozon выдают посылки, принимают возвраты, проводят инвентаризации. 

Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического создания кода на Swift из YAML- или JSON-файла спецификации. Это позволяет автоматизировать создание DTO, сделать их единообразными и повысить эффективность разработки. Кодогенератор также упрощает сетевой слой, генерируя методы API, наборы параметров, заголовки и т.д.

На WWDC `23 Apple представила свой Open Source-генератор Swift OpenAPI Generator, который как раз и решает эту задачу. Давайте рассмотрим, готов ли в текущем виде Swift OpenAPI Generator для решения нашей проблемы.

Читать далее

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

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

Однажды ко мне пришел крупный застройщик, хотел обновить дизайн приложения. Провели два созвона, определились, что будет в дизайне. Делаю простенькое ТЗ на доп. разработку. Все круто, казалось бы. Потом выяснилось, что нужно интегрироваться с 1С. Это сложная доработка, поэтому с командой делаем полноценное техническое задание. Присылаем им готовое ТЗ, договор и счет — ждем ответа. Проходит день, два… неделя. Мы забили, а потом увидели кейс у коллег по нашему ТЗ.

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

Читать далее

Что будет с мобильными релизами, если улучшать и автоматизировать процессы

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

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

Читать далее

Мобильная разработка за неделю #511 (16 — 22 октября)

Время на прочтение5 мин
Охват и читатели2.8K
В новой подборке сторонние платежи в iOS-приложениях в России, использование Swift и SwiftUI в iOS 17, русификация китайского Android и поиск лишних Component Dependencies, камеры и Flutter, шесть платформ, 15 лет программной инженерии и многое другое!

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

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

Как мы удвоили разрешение фотографий с помощью камеры Flutter на iOS

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3.7K

Привет, меня зовут Сергей, и я мобильный разработчик в компании Brickit. Некоторое время назад мы наконец мигрировали приложения для iOS и Android на общий код на Flutter. Мы были в восторге от результата, но сам переход был далеко не гладким. Одной из важных частей этой авантюры была настройка и использование плагина камеры, что оказалось нетривиальным как на iOS, так и на Android. В этой статье я расскажу о проблеме с недостаточно высоким разрешением фотографий на iOS, немного объясню, как работает оригинальный плагин, и предоставлю наше решение с примерами кода о том, как сделать это лучше. Ссылка на полный код в конце статьи.

Читать далее

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

Архитектура SwiftUI + VIPER: модульный подход к разработке iOS‑приложений

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

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

И ни капельки UIKit и другой темной магии..

Читать далее

Одна игра, один разработчик, шесть платформ

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

Недавно компания Valve объявила о том, что Counter-Strike 2 не будет поддерживать macOS. Я инди-разработчик, в одиночку выпустивший игру с поддержкой macOS, поэтому поначалу меня удивило это решение Valve. Но вспомнив о своём собственном опыте поддержки шести платформ, я начал понимать точку зрения компании.

Думаю, будет полезно написать пост с перечислением полученных мной уроков. Надеюсь, он поможет другим инди-разработчикам в выборе поддерживаемых платформ. Небольшое предисловие: моя собственная игра Industry Idle в основном основана на веб-технологиях (WebGL + TypeScript). Это означает, что поддержка разных платформ — относительно простая задача, мне не приходится иметь дело с платформенными графическими API (DirectX, OpenGL, Vulkan, Metal) и в основном игра существует в браузерной «песочнице». Это практически идеальная ситуация для кросс-платформенной поддержки. Тем не менее, меня постоянно удивляют и одолевают проблемы, связанные с отдельными платформами.

Читать далее

Как настроить push-уведомления в Safari на iOS

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели16K

Привет! В этой статье мы разберемся, как отправлять push-уведомления пользователям iOS, даже если ваше приложение временно недоступно в App Store. С выходом Safari 16.4, появилась возможность получать уведомления в Progressive Web Apps (PWA)

Читать далее

Мобильная разработка за неделю #510 (09 — 15 октября)

Время на прочтение5 мин
Охват и читатели2.8K
В нашем новом дайджесте LLM на iOS и архитектура Android-приложений, здоровье сборки и реактивные формы, скользкий кусок мыла, 40 лет программирования, чаты с Аидом, потери денег на ИИ и многое другое!

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

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

WidgetKit в iOS — не просто большие иконки

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

Меня зовут Даша, я iOS-разработчик в Surf. Сегодня я освежу в вашей памяти философию и design виджетов. Подсвечу технические аспекты, которые помогут, если вы собираетесь делать свой первый виджет или хотите вдохнуть жизнь в старый. А ещё затрону несколько неочевидных, но важных тем.

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее