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

iOS *

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

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

Как проходит интервью мобильных разработчиков в Тинькофф

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

Привет! Я Максим Коробов, руководитель отдела разработки мобильного приложения Тинькофф. В статье расскажу о том, как проходит отбор кандидатов на вакансии разработчиков iOS и Android, что спрашивают на первичном и техническом интервью и какие задачи предлагают решать во время практической секции. 

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

Читать далее

Flutter vs Native: почему мы переходим с первого на второй

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

Привет, Хабр! Меня зовут Сергей, я занимаюсь мобильной разработкой 13 лет и недавно стал руководителем разработки мобильного приложения «Пункты выдачи заказов» в Ozon. Невольно став сместителем существующего строя в проекте (фреймворки, технологии, подход), я стал часто слышать вопрос: «Почему вы отказались от Flutter?».

Слышал я этот вопрос прежде всего от разработчиков моей команды и соискателей на наши вакансии, потом во время доклада на эту же тему на конференции Panda Meetup, в конце концов, даже менеджер нашего проекта подошёл с вопросом: «Ну а всё же почему?». Настолько людей захватывает эта тема, что я решил поделиться развёрнутым ответом.

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.5K
В новом дайджесте трудности перевода приложений и импакт-анализ, Force Update и тренды Android-разработки, шрифты в играх и история игрового композитора, экраны загрузки, использование приложений, GitHub Actions и многое другое!

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

Развитие способностей коллекций в Swift (на примере функции suffix)

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


Протоколы иерархии Sequence/Collection имеют одно из самых важных значений в Swift, начиная со встроенности в язык (например, конструкция цикла for in) и заканчивая популярными функциями высшего порядка mapreduce и т.п. Часто разработчики путаются в особенностях, не осознавая возможности, предоставляемые отдельными протоколами иерархии коллекций. Давайте попробуем разобраться с этими особенностями на примере одной функции, которая по разному реализуется в этих протоколах — функция suffix. Функция suffix возвращает массив из заданного количества элементов взятых с конца последовательности. Мы рассмотрим работу этой функции на основе реализации по умолчанию у протоколов SequenceCollectionBidirectionalCollection и RandomAccessCollection. Все эти протоколы последовательно наследуются друг от друга и на каждом уровне наследования добавляются новые возможности начиная с примитивного последовательного доступа и заканчивая прямым индексным доступом за время O(1).

Читать далее

Идентификаторы элементов в XCUITest

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

Меня зовут Семен, я занимаюсь автоматизацией тестирования мобильных приложений в hh.ru, и сегодня я расскажу о том, как писать автотесты под iOS. 

Быстрые регрессы, низкий time-to-merket, счастливые пользователи, у которых нет багов — для всего этого нам нужны автотесты. Наше мобильное приложение работает сразу на двух платформах, и мы пишем автотесты для каждой из них. 

Затестить

15 стран, 9 языков: трудности перевода одного iOS-приложения

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

В 2017 году у Додо Пиццы появилось приложение для iOS на русском языке, а в 2019 его понадобилось перевести на румынский, а потом ещё на несколько языков. При этом ни одна строка не была обёрнута в макрос NSLocalizedString(…).

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

Читать далее

«Горячие» и «холодные» Feature toggles: принципы работы

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

В этой статье мы расскажем про принципы безопасной работы с переключателями функционала – Feature Toogles: 

— Что из себя представляют переключатели функционала и для чего их использовать.

— Какие проблемы возникают при неправильном использовании.

— Что такое «горячие» и «холодные» переключатели, и как они способны решить проблемы из прошлого пункта. 

— Реализация «холодных» toogle-ов с помощью условной компиляции и линковки.

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

Читать далее

Почему я против enum

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

Меня зовут Саша Терентьев, я из команды ленты ВКонтакте. В этой статье поделюсь мыслями о проблемах кода, где используются enum и сопоставления типов. Часто встречаю такой код в проектах, ресурсах, примерах. Мы обсуждали это с коллегами на внутреннем событии, и из моего доклада выросла эта статья.

Букв будет много. Но, думаю, материал пригодится широкому кругу разработчиков — и не только iOS. Примеры основаны на псевдо-Swift и написаны по мотивам использования UIKit. Но могут пригодиться для работы с разными платформами и в любой области, где возникают сопоставления с образцом, приведения типов, переборы множеств типов.

Читать далее

Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU

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

Render Loop крутится — кадры мутятся

Доброго времени суток, уважаемые читатели. Здесь я начинаю свой цикл статей о работе с графикой в iOS.

В моих планах разобраться с работой базовых механик отрисовки и углубиться к таким вещам как AVFoundation, Metal.

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

Читать далее

Восемь вопросов от iOS-разработчиков на собесах в hh.ru

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

Мы в hh постоянно находимся в активном поиске истинных талантов и проводим массу собеседований. Как правило, они состоят из двух этапов — технического и продуктового. На каждом из них у кандидатов возникает множество вопросов, и чтобы облегчить всем жизнь, мы отобрали самые популярные и отвечаем на них в этой статье.

Ладно, давайте ваши вопросы

Force Update — механизм принудительного обновления мобильных приложений

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

Абсолютное большинство мобильных приложений имеет интересный нюанс – «хвост» старых версий, которыми все еще продолжают пользоваться. В этой статье мы посмотрим, какие проблемы это приносит и как с этим бороться. Материал будет полезен и мобильным разработчикам, и тем, кто каким-либо образом связан с разработкой мобильных приложений, к примеру, разрабатывает backend сервисы, которые используются в приложениях.

Читать далее

Разбираем SceneDelegate и AppDelegate в iOS 13

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

Продолжаем делиться своей практикой и переводами статей, которые могут быть полезны мобильному разработчику. В прошлых статьях мы разобрали инструменты тестирования и оптимизацию внедрения зависимостей в Android, а сейчас рассмотрим одно из нововведений в iOS 13 – поддержку многооконного режима и разделение AppDelegate (жизненный цикл и настройка приложения) и SceneDelegate (отображение приложения). 

От автора: Ещё до Xcode 11, при создании нового проекта вы знали, что по умолчанию создаются некоторые файлы, такие как AppDelegate.swift, ViewController.swift и StoryBoard, а также некоторые другие. Но в Xcode 11 вы могли заметить, что наряду с файлами по умолчанию, указанными выше, создается новый файл – SceneDelegate.swift.

Сначала вам может быть непонятно, что это за файл, для чего он создан и как использовать SceneDelegate при разработке приложения. Но давайте попробуем понять разницу между AppDelegate и SceneDelegate.

Читать далее

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

FPS не падай, девайс не грейся

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

В октябре 2020 года в техническую поддержку Авито стали обращаться пользователи с проблемами нагрева девайса и просадками FPS вплоть до полного фриза iOS-приложения. Проблема, как казалось, была глобальной. Она не относилась к какой-то конкретной функциональности приложения и поэтому не подходила в бэклоги продуктовых команд. Выход был один: засучить рукава и самому разобраться, что пошло не так. Не даром же я performance engineer.

Читать далее

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

Время на прочтение4 мин
Количество просмотров3.7K
В новом дайджесте годовой определяющий отчет State of Mobile 2022 от App Annie о рынке мобильных приложений, советы по разработке игр от Сида Мейера, тренды разработки и UI/UX, борьба Apple с клонами (да) и мошенниками (нет) и многое другое!

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

Экспорт UI дизайн-интерфейсов из Figma в Xcode iOS/Android Studio, в виде .xib/xml

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

Экспорт UI дизайн-интерфейсов из Figma в Xcode iOS/Android Studio, в виде .xib/xml

FigmaConvertXib это инструмент для экспорта элементов дизайна из проекта Figma, в среду разработки, с точностью 90%. В результате конвертации будут созданы файлы xib / xml, и уже с помощью интерфейс редактора Xcode/Android Studio, можно будет манипулировать всеми элементами у себя коде. Если дизайн вашего проекта разрабатывается в Figma, и вы не реализуете дизайн программно, то это для вас. Для того чтобы не тратить огромное время на реализацию всех UI элементов.

Читать далее

Big O нотация в Swift

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

Данная статья поможет начинающим iOS разработчикам разобраться в производительности алгоритмов в Swift.

Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.

Читать далее

Что нужно знать аналитику при разработке под Android & iOS

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

Мы уже не представляем свою жизнь без мобильных телефонов и приложений, которые в них установлены. В мире сегодня насчитывается около 3,5 миллиардов пользователей смартфонов, 99% из которых работают на Google Android или Apple iOS. При этом мобильная разработка — молодое направление, информации по которому мало. Для того чтобы найти ответ даже на простой интересующий вопрос, порой требуется потратить немало времени. 

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

Читать далее

SwiftUI — Custom NavigationView

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

В публикации мы рассмотрим альтернативу NavigationView т.к. он переодически выкобенивается и отказывается работать надлежащим образом.

Альтернатива кастомная, не использует UIKit, подача материала простая (насколько смог упростить), каждый момент постарался разобрать максимально подробно.

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

Читать

Второе приложение. SwiftUI, может познакомимся поближе?

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

Публикация, в которой идет речь о SwiftUI. Расчитана в первую очередь на разработчиков, которые только столкнулись со SwiftUI.

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

Состав публикации

• Вычисляемые свойства

• Инициализация оболочек (оберток) свойств

• Собственные оболочки свойств

• Динамический предикат (NSPredicate)

• @ViewBuilder

• Optional(nil) != nil

Читать далее