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

iOS *

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

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

Учитесь, глупцы

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

Современный мир стремительно меняется и подбрасывает нам всё новые вызовы. Кажется, что ландшафт современного IT изменится кардинально. Не зря же вся мировая AI тусовка написала письмо с просьбой «немедленно приостановить» обучение систем ИИ, «более мощных, чем GPT-4».

Я провел небольшое исследование и спросил всех до кого смог дотянуться следующее:

Я пишу обзорную статью для Хабра об инструментах AI. Интересуют реальные кейсы применения в работе этих инструментов. Если ты использовал\использовала его и есть желание поделится со мной, то прошу это сделать.

Множество людей самых разных профессий поделились своим опытом и экспертизой. Я оставил самые яркие и интересные, надеюсь, вам понравится.

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

Читать далее

Мобильная разработка за неделю #483 (3 — 9 апреля)

Время на прочтение4 мин
Количество просмотров2K
В нашем новом дайджесте async/await и кодогенерация для Kotlin, перспективы развития Flutter, решение темной темы, -10х инженеры, игровые механики, человечество после GPT-4 и многие другие материалы.

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

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

Swift async/await. Чем он лучше GCD?

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

Прошло уже больше года с момента выпуска async/await. Многие крупные и не очень проекты уже успели поднять минимальную версию до iOS 13, следовательно открылась возможность полноценно использовать новые языковые возможности по работе с асинхронным кодом. Но перед тем как начать полноценно рефакторить старый код и/или писать новый код используя относительно новую технологию в голове невольно всплывает вопрос: «А зачем? Чем это лучше того же GCD?». В этой вступительной статье из серии по async/await постараемся вместе ответить на этот вопрос.

Читать далее

Настройка Fastlane в React Native

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

Цель:
Одним скриптом загружать новые билды в TestFlight и Google Play.

Идея для статьи зародилась после того, как я потратил кучу времени на настройку Fastlane для своего проекта на React Native. Во время настройки, я так и не смог найти публикацию, которая давала бы простую инструкцию по интеграции Fastlane от А до Я. Эта статья должна стать не более чем простой инструкцией по базовой настройке Fastlane под обе платформы IOS и Android.

Читать далее

3 примера, в которых доступность помогла заработать денег, подсветить ошибки и решить споры

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

Первое, что люди спрашивают про доступность: а может ли она принести денег, ведь там немного пользователей? Популярное искажение в том, что они выделяют одну группу (ну сколько там незрячих на миллион?) и не оценивают картину в целом (45% на iOS и 59% на Android включают хотя бы одну настройку доступности).

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

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

Читать далее

Свое мобильное приложение: от идеи до разработки, продвижения и развития

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

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

Я пройдусь по основным этапам разработки мобильного приложения:

Проработка идеи
Проектирование UX/UI
Разработка
Аналитика
Продвижение
Дальнейшее развитие приложения

Расскажу о том, как создать свое приложение, которое будет интересно не только вам.

Читать далее

Мобильная разработка за неделю #482 (27 марта — 2 апреля)

Время на прочтение4 мин
Количество просмотров1.9K
В новой подборке материалы о подготовке к собеседованию и кнопочном Android, о создании дизайна с Midjourney, рекордах рынка приложений и многом другом.

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

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

Подготовка к собеседованию на iOS разработчика (актуально на начало 2023 года)

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

Доброго времени суток. Я iOS-разработчик (хлопки-хлопки).

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

Поговорив с начальством, мне назначили встречу с лидом iOS, чтобы подготовить меня к предстоящим собеседованиям. Однако, после нескольких вопросов от лида вердикт был, что не подхожу на текущие проекты. На вопрос, какие, собственно, критерии оценивания я получил ответ:

"тебе никогда никто не расскажет? в нашем деле все сам ?"

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

Читать далее

Прости, Rosetta, мы должны расстаться

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

С релизом Xcode 14.3 Apple убирает поддержку Rosetta и почти прямым текстом говорит разработчикам, что откладывать адаптацию своих проектов под Apple Silicon дальше уже некуда. Сегодня я поделюсь историей про то, с какими сложностями мы столкнулись в нашем основном приложении Циан, и какое стороннее решение помогло нам избавиться от Rosetta.

Читать далее

С какими сложностями встретится новичок в IT на первой работе?

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

Всем привет, меня зовут Борис, я iOS и Android разработчик. Сегодня я хочу поделиться своими наблюдениями о том, с какими проблемами встречается новичок в IT, устроившись на работу, и как вообще выглядит сам процесс.

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

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

А еще напоминаю, сейчас я занимаюсь менторингом и помощью начинающим в iOS, потому вы всегда можете написать мне в личные сообщения в телеграм по любому вопросу: verbitckii_b.

Приятного чтения!

Читать далее

Тестирование remote push notifications на iOS, когда используем Firebase Cloud Messaging

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

Привет, Хабр! Меня зовут Максим Толстиков и я iOS-разработчик в Учи.ру. Для отправки пуш-уведомлений наша команда использует Firebase Cloud Messaging. Недавно у нас появилась задача — написать свой шаблон запроса на отправку тестового пуша, который будет эмулировать работу бэкенда. При этом нам важно было оставить  возможность кастомизировать payload, чтобы независимо от инфраструктуры компании разрабатывать клиентскую часть пушей. В ходе решения задачи выяснилось, что Cloud Messaging не так уж и прост — пришлось немало потрудиться, чтобы в нем разобраться. Если вы собираетесь разрабатывать подобные запросы, наша статья поможет вам сэкономить время и силы.

Материал рассчитан на тех, кто уже имеет некоторые навыки в программировании и в целом знаком с iOS, командной строкой, сталкивался с сервисами Firebase и понимает, как устроены пуш-уведомления.

Читать далее

Мобильная разработка за неделю #481 (20 — 26 марта)

Время на прочтение4 мин
Количество просмотров1.9K
В нашем новом дайджесте легковесная миграция Core Daya и утечки памяти в iOS, реверсинжинеринг московского метро и конец любви к Flutter, бестолковый дизайн, тест на ручник для ChatGPT и многое другое.

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

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

Из кондитера в программиста или как я училась в Geekbrains. Начало

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

Буду постепенно рассказывать как я училась, как превращалась из кондитера в программиста. Начну с того, как я выбирала на кого и где учиться.

Началось всё с пандемии коронавируса. А точнее нет, даже раньше. Я уволилась из очередного ресторана, где работала кондитером и искала новую работу. Случайно через друзей меня позвали работать в барбершоп администратором и я думала, что параллельно буду заниматься самообразованием. Но российские инвесторы решили выкрутить из меня верёвки и мне пришлось полностью управлять салоном и персоналом (6 дней в неделю). Я окончательно поняла, что надо что-то менять в своей карьере. И вот тут начался локдаун.

Сижу я в Сербии, запертая в квартире и грущу, что работать не могу, новую работу не найти, непонятно как вообще будет жить HoReCa в постковидном мире, а мой молодой человек продолжает работать и в IT как раз дела зашибись: доставки, сервисы пошли в гору даже в Сербии. И вот он предлагает попробовать программирование. В школе я была в классе с уклоном в ИВТ, делала даже простые сайты и сдавала информатору как профильный экзамен. Но от этих довольно поверхностных знаний 2008го года остались какие-то очень призрачные воспоминания, к тому же, HTML - это не программирование, а технологии ушли настолько далеко, что так просто к ним не возможно было подступиться. Еще я немножко проходила курс по системному администрированию Linux в 2016м (спасибо бывшему мужу), поэтому я умела, или хотя бы не боялась, работать с консолью. Ну да, в целом, у меня было много предпосылок и знаков, что программирование мне зайдет и сейчас самое время.

Читать далее

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

Test Plans — теперь по умолчанию для новых проектов с Xcode 14.3

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

Начиная с Xcode 11, когда Apple представила Xcode Test Plans для более простого и более настраиваемого управления тестированием и его выполнения, — и новые, и уже существующие проекты приходилось вручную переводить на использование новой системы или создавать новые планы тестирования с нуля. Для тех, кто не знаком: планы тестирования позволяют одному файлу управлять одной или несколькими тестовыми конфигурациями для набора тестов; допускают использование нескольких языков, смоделированных локаций, настроек тестирования и многое другое в одном тестовом запуске. Они могут сэкономить массу времени главным образом для локализованных приложений, приложений с белой меткой или сценариев со сложными конфигурациями сборки.

Переход на планы тестирования не требует больших усилий, вам нужно открыть существующую схему и перейти в раздел Test, а затем нажать кнопку Convert to use Test Plans

Читать далее

SwiftUI вью против модификаторов

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

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

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

Читать далее

Освоение диаграмм в SwiftUI. Доступность

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

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

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

Читать далее

Как не потерять голову (и память) при поиске утечек в iOS

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

Всем привет! Меня зовут Фируза, я занимаюсь iOS-разработкой в компании SimbirSoft. Хочу поделиться результатами исследования утечек памяти, с которыми я столкнулась на одном из проектов.

Все началось с того, что я заметила подтормаживания UI и обратила внимание на рост занимаемой памяти в процессе использования приложения. В пределах нескольких сценариев расход памяти незначительно колебался – объекты создавались и освобождались. Другие сценарии при непродолжительном использовании приводили к значительному росту памяти, используемой приложением. При активном и продолжительном использовании могут «убежать» сотни мегабайт.

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

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

Читать далее

Учимся определять способность Core Data к легковесной миграции до загрузки контейнера

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

При создании приложения на основе фреймворка Core Data мы проектируем модель данных, в которую потом снова и снова вносим изменения. Неужели при этом каждый раз нужно удалять все данные и загружать их заново, а заодно перегружать сервер и батареи пользователей? Сначала кажется, что это единственный вариант решения, но я выяснил — всё можно сделать проще.

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

Читать далее

Реализация спойлеров в SwiftUI

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

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

Читать далее

Cocoapods, Carthage, SPM: как выбрать менеджер зависимостей в iOS

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

Старший iOS-разработчик red_mad_robot Аня Кочешкова рассказывает, чем отличаются три менеджера зависимостей, в каких случаях и для каких задач подойдёт тот или иной. Материал будет полезен джун-специалистам, которые только начали погружаться в разработку: специально для них подробно объясняем, что такое семантическое версионирование, как устроены модули кода и в чём разница между динамическими и статическими библиотеками.

Читать далее