Как стать автором
Обновить
35.03
Рейтинг

Swift *

Открытый объектно-ориентированный язык

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

[iOS] Создание статической библиотеки Static Library с использованием Cocoapods

Разработка под iOS *Swift *
Из песочницы

В свое время мне понадобилось обернуть написанный модуль в библиотеку. Порядочно погуглив, я нашел кучу туториалов, суть которых - создается библиотека с одним-двумя .swift - файлами. У меня же был целый проект, да еще с подами (а ля Alamofire, Moya, EasyPeasy и др), и создание библиотеки именно этим и усложнялось, было непонятно как переносить поды, нужно ли их вообще переносить и как в целом правильно сбилдить такую библиотеку.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 337
Комментарии 6

Новости

Кто крешит приложение на старте?

Блог компании Яндекс Разработка под iOS *Разработка мобильных приложений *Swift *

Привет! Меня зовут Александр Денисов, я из команды мобильного Яндекс.Браузера в Санкт-Петербурге. В этом посте расскажу вам, как мы справляемся с циклическими крешами на старте.


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


В качестве примера будет выступать приложение Яндекс.Браузер для iOS: более 100 тысяч исходных файлов, тысячи коммитов в год и около тысячи модулей без учёта ядра (Swift + Objective-C). Кстати, не так давно мы рассказывали, как помогли команде Swift ускорить отладчик.


Циклический креш на старте


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

Как бороться
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 1.6K
Комментарии 8

Идеальный наблюдатель на Swift

Разработка под iOS *Swift *Разработка под MacOS *
Из песочницы

В этой статье речь пойдёт о шаблоне проектирования "Наблюдатель" (Observer) и его реализации на Swift. Точнее о его идеальной реализации.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.6K
Комментарии 11

App Tracking Transparency: что изменилось с новой политикой приватности от Apple

Блог компании FUNCORP Разработка под iOS *Разработка мобильных приложений *Swift *Монетизация мобильных приложений *

Apple в прошлом году заставила понервничать весь мобильный рекламный рынок, анонсировав для App Store новую политику приватности данных. Теперь создатели приложений обязаны спрашивать разрешение пользователей на рекламный трекинг (да-да, тот самый нашумевший IDFA). Правила, которые несколько раз откладывали, вступили в силу в начале этого года. 

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

Читать далее
Всего голосов 41: ↑41 и ↓0 +41
Просмотры 4.3K
Комментарии 2

Обработка жестов в iOS

Разработка под iOS *Разработка мобильных приложений *Swift *

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

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 4.2K
Комментарии 8

Опыт внедрения многомодульности в (еще) не разросшееся приложение (Часть 1)

Разработка под iOS *Разработка мобильных приложений *Swift *

Опыт внедрения многомодульности в (еще) не разросшееся приложение (часть 1).

Читать далее
Рейтинг 0
Просмотры 1.3K
Комментарии 1

Arduino ракета на 3D принтере — учимся приземлять ракеты дома

Разработка под iOS *Swift *Разработка под Arduino *Робототехника DIY или Сделай сам
Из песочницы

Сегодня я хотел бы поделиться своим опытом проектирования ракеты типа «Батут-М» с управлением вектора тяги (thrust vector control), все детали будем печатать на 3D принтере, а в качестве микроконтроллера использовать Arduino Nano BLE.

Читать далее
Всего голосов 79: ↑77 и ↓2 +75
Просмотры 16K
Комментарии 38

iOS. UI. Приёмы. Часть 2

Разработка под iOS *Разработка мобильных приложений *Swift *Дизайн мобильных приложений *

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

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.9K
Комментарии 5

TechnoMeetsIOS. Открытый онлайн-митап по iOS-разработке 15/10

Разработка под iOS *Swift *Конференции

15 октября в 17:00 «Технократия» приглашает на открытый онлайн-митап, посвященный iOS-разработке. В этот раз поговорим про то, что такое Swift Package Manager и для чего он нужен в iOS разработке. Один из спикеров расскажет о том, как поменять профессию и стать iOS-разработчиком. А также мы проведем круглый стол на извечную холиварную тему «Натив vs Кроссплатформа. Кто победит?»

Присоединитесь к нам

Читать далее
Рейтинг 0
Просмотры 396
Комментарии 0

Swift: локализация строк, содержащих формы множественного числа

Блог компании Alconost Разработка под iOS *Разработка мобильных приложений *Swift *Локализация продуктов *
Перевод

Задумывались ли вы когда-нибудь, зачем нужен файл .stringsdict?

Приходилось ли вам сталкиваться с грамматическими правилами для множественного числа в приложениях для iOS?

Если вы ответили утвердительно на любой из этих вопросов или вам просто интересно узнать что-то новое о локализации в Swift, то эта статья для вас. Здесь я постараюсь объяснить, чем полезен этот мощный инструмент, предоставленный нам компанией Apple.

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 1.6K
Комментарии 3

Получаем данные результатов выборов с сайта Центризбиркома РФ

Разработка веб-сайтов *Открытые данные *Реверс-инжиниринг *Swift *Статистика в IT
Из песочницы

Прочитав новость о том, что Центризбирком РФ выложил результаты выборов на своем сайте в обфусцированном виде, многие начали публиковать в комментариях свои варианты деобфускаторов, как с использованием OCR, так и без него. Но я подумал, что есть более первостепенная задача — а именно выгрузка и сохранение данных с сайта ЦИК, так как они могут в любой момент измениться, и никто этого не заметит.

Кому интересны только сырые обфусцированные данные, архив с ними можно скачать здесь (внимание: в распакованном виде файлы занимают 11 ГБ). А кому интересно как я их получил, и какие методы обфускации в них применяются — добро пожаловать под кат.

Читать далее
Всего голосов 113: ↑112 и ↓1 +111
Просмотры 22K
Комментарии 33

Отображение иерархических данных в виде списка с возможностью поиска

Разработка под iOS *Разработка мобильных приложений *Алгоритмы *Swift *Разработка под MacOS *
Из песочницы

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

Читать далее
Рейтинг 0
Просмотры 1.2K
Комментарии 2

Джунам в Swift: как делать нейминг правильно?

Разработка под iOS *Xcode *Swift *

Занимаясь на курсах или обучаясь по различным туториалам, книгам и статьям, начинающие разработчики не слишком заботятся о том, как называть свои константы, переменные, классы, протоколы и т.п. во время написания кода. А ведь код пишется прежде всего для людей, а не для машины (машина понимает лишь язык нулей и единиц). Соответственно, для того, чтобы работать в команде, нужно позаботиться о том, чтобы код был понятен другим разработчикам (или понятен самому себе спустя несколько месяцев). Понятный код - один из важнейших критериев отбора джунов на работу. Ни один работодатель не захочет брать на работу кодера, у которого в коде "без бутылки не разберешься".

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 3.8K
Комментарии 4

Энциклопедия интеропа: Kotlin-Swift-Interopedia

Блог компании HeadHunter Разработка под iOS *Разработка под Android *Swift *Kotlin *

Как и множество других компаний, мы в hh.ru с интересом приглядываемся к Kotlin Mobile Multiplatform. Особенно нас заинтересовал вопрос, связанный с удобством работы iOS-разработчиков с общим SDK. Наши iOS-инженеры пишут на Swift, поэтому нам важно было убедиться: то публичное API, которое мы сформируем, будет выглядеть на Swift так же удобно и классно, как и в Kotlin. Мы провели объёмный ресёрч, в рамках которого подготовили специальный репозиторий "Kotlin-Swift-Interopedia", которым и хотим поделиться с сообществом.

На портале документации KMM можно найти страницу, посвящённую интеропу между Kotlin и Swift. Но в ней не рассматриваются все возможные конструкции языка Kotlin-а, поэтому даже после чтения документации оставалось множество вопросов.

Как поведут себя abstract-классы? Что будет с sealed-интерфейсами? Удобно ли мне будет работать с лямбдами в качестве аргументов функций? Enum-ы превратятся в Swift-овые enum-ы?

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

Относительно недавно на Хабре анонсировали специальный инструмент, который может немного улучшить опыт iOS-разработчиков — плагин moko-kswift от компании IceRock. Но даже с его помощью не все боли могут быть исправлены прямо сейчас.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 1.8K
Комментарии 0

Как мы разрабатываем Элизу

Блог компании ВТБ Лизинг JavaScript *API *CRM-системы *Swift *

Привет, Хабр! Команда ВТБ Лизинга хотела бы поделиться историей о том, как мы начали выстраивать новый IT-ландшафт для системы электронного лизинга автомобилей. Эта система не имеет отношения к знаменитой программе-собеседнику, просто название “e-Leasing” как-то естественно превратилось в Элизу, да так и прижилось.

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

Что же мы сделали?
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 1.5K
Комментарии 0

5 причин не начинать писать приложение под macOS/iOS

Open source *Разработка под iOS *Swift *Разработка под MacOS *

Привет хабр! Я терпел четыре года, и таки решился написать о своем хобби проекте. Если коротко о себе, то я типичный разработчик подсевший на макбуки в эру, когда ноутов с хорошей батареей толком и не было.

Мой проект — программа для ведения заметок в Markdown и Plain text. Возможно вы слышали о FSNotes, а если нет, то можете сами взглянуть, весь код лежит на GitHub, под MIT лицензией.

Линк на репозиторий

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

Читать далее
Всего голосов 79: ↑64 и ↓15 +49
Просмотры 28K
Комментарии 99

Проектирование классов на Swift

Разработка под iOS *Разработка мобильных приложений *Проектирование и рефакторинг *Swift *Разработка под MacOS *
Tutorial

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 2.9K
Комментарии 16

Создаем ячейки в iOS

Блог компании HeadHunter Разработка под iOS *Разработка мобильных приложений *Swift *Дизайн мобильных приложений *

Типичный день мобильного разработчика: получил json, распарсил, отрисовал на UI ячейки, PROFIT.

Как элегантно колдовать с ячейками без изобретения велосипеда мы рассказали в одном из эпизодов «Охэхэнных историй», а потом сделали из него статью.

В сегодняшней программе  ячеек в iOS: разберемся какие ячейки бывают, посмотрим на ячейки в дизайн-системе hh.ru и их реализацию в коде и попробуем собрать свою ячейку.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.4K
Комментарии 2

Как автоматизировать безопасный декодинг массивов в Swift с @propertyWrapper

Блог компании Ozon Tech Программирование *Разработка под iOS *Разработка мобильных приложений *Swift *

Привет! На связи Влад, iOS-разработчик из Ozon. Сегодня я поделюсь с вами, возможно, не самым очевидным способом использования propertyWrappers. Обёртки позволяют добавлять дополнительную логику свойствам. В одну из них мы спрятали описание безопасного декодинга массивов, и теперь нам достаточно пометить свойство как @SafeDecode — и всё начинает работает автоматически. О том, как они работают и как их завести у себя, читайте дальше.

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 2.1K
Комментарии 6

AppCode 2021.2: улучшения поддержки Swift, автодополнение выражений, окно иерархии вызовов для Swift и не только

Блог компании JetBrains Разработка под iOS *Разработка мобильных приложений *Xcode *Swift *

Привет, Хабр! 

В этом посте, как и всегда, расскажем о новом релизе AppCode. Всем, кому интересно, — добро пожаловать под кат. 

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 1.4K
Комментарии 5

Вклад авторов