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

Swift *

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 3.1K
Комментарии 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.5K
Комментарии 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Распространение консольных приложений macOS до конечных пользователей

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

Начиная с macOS 10.15 Catalina разработчикам требуется заверять свои приложения и утилиты командной строки. Если с приложениями, распространяемыми через App Store все прозрачно, то распространение консольных утилит может вызвать сложности. В данной статье я покажу, как можно доставлять такие утилиты до конечных пользователей (будем проделывать все необходимые операции в терминале, а также автоматизируем эти действия двумя вариантами - через bash-скрипт и с помощью SPM executable).

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

Nivelir: Удобный DSL для навигации

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


Год назад мы пересмотрели свою реализацию роутинга в iOS-приложениях hh.ru. Тогда она больше походила на простой слой сборки экранов, чем на роутинг как таковой. Смирившись с этим печальным фактом, мы принялись исследовать тему навигации: пересмотрели много подходов в iOS, примерили каждое в песочнице нашего проекта и даже дошли до Cicerone из мира Android.


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

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

Знакомимся с async/await в Swift

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

Один из самых ожидаемых релизов на WWDC 21 - новая многопоточность в iOS среде.

Под катом разберемся, что это за зверь, как он работает и какие возможности предоставляет.

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

Разбираемся с AsyncImage в SwiftUI

Блог компании OTUS Разработка под iOS *Swift *
Перевод

На протяжении нашей профессиональной деятельности мы в основном создаем приложения, которые так или иначе обмениваются данными с веб-сервисами. Изображения на удаленных серверах — это как раз один из таких типов данных, которые нам необходимо загружать и отображать в нашем приложении. SwiftUI предоставляет нам тип AsyncImage, который является представлением для загрузки и отображения изображений по URL-адресу. В этой статье вы узнаете, как использовать и кастомизировать AsyncImage в SwiftUI.

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

@Once: однократные замыкания

Блог компании OTUS Разработка под iOS *Swift *
Перевод

В Swift 5.5 появилась возможность использовать обертки свойств на параметрах функций и замыканий. Это наконец позволило мне реализовать то, что я и многие другие люди всегда хотели видеть в Swift — способ каким-либо образом обеспечить, чтобы замыкание (closure) вызывалось ровно один раз.

Чтобы понять, зачем, вот вам простой пример.

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

Внедряем Snapshot testing в UI-тесты iOS

Блог компании Vivid Money Тестирование IT-систем *Разработка под iOS *Swift *Тестирование мобильных приложений *
Tutorial

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

Меня зовут Борис. Я AQA iOS-engineer в Vivid Money.

В этой статье я хочу рассказать про snapshot тесты и показать, как их можно эффективно применять в своём проекте.

Данная статья будет полезна начинающим iOS-автоматизаторам, либо разработчикам, которые решили изучить XCUITest и покрыть свой проект ui-тестами.

В рамках статьи мы разберем:

• Что такое snapshot тесты и когда их применять;

• Какие есть библиотеки;

• Поэтапно расскажу и покажу как внедрить их у себя в проекте.

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

Танцы с ассетами

Блог компании Vivid Money Разработка под iOS *Swift *

Любят ли ваши дизайнеры использовать изображения так, как любят это делать у нас? Если да, то вам определенно будет интересно как привести в порядок каталог ассетов, сделать его меньше в размере и ускорить компиляцию.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 1.5K
Комментарии 6

Как мы переходили с CocoaPods на Carthage

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

Недавно мы перешли с CocoaPods на другой менеджер зависимостей — Carthage. Оказалось, что у этой простой на первый взгляд задачи много подводных камней. 

Чтобы сменить менеджер зависимостей и не страдать нужны две вещи:

- заранее понимать, какая конечная цель у этой задачи,

- знать, какие подводные камни ожидают на пути.

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

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

Что нового в API StoreKit 2 и как он упростил интеграцию покупок в приложении

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

На недавно прошедшем WWDC 2021 представили новую версию StoreKit 2. Это фреймворк, который отвечает за осуществление покупок в iOS. Доля приложений со встроенными покупками и подписками постоянно растёт, и выпустив StoreKit 2, Apple заметно упростил интеграцию покупок в приложение. Сегодня мы рассмотрим работу с StoreKit 2 со стороны сервера, то есть с помощью App Store Server API.

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

Tuist: Xcode-проект на стероидах

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


Стандартное представление Xcode-проекта сложно назвать комфортным для командной работы. Даже в небольших проектах часто возникают merge-конфликты после изменения состава исходников в разных ветках.


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


Да, ограничения Xcode можно победить, но решением в основном является "винегрет" из сторонних инструментов, заправленный собственными Shell или Ruby скриптами, в которых мало кто разбирается.


Но есть куда более изящное и комплексное решение — Tuist. С ним мы и познакомимся в этой статье.

Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 3.6K
Комментарии 8

Паттерн Observer в Swift

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

Всем доброго времени суток. В этой статье речь пойдет о паттерне Observer. Все кто связан с iOS разработкой наверняка сталкивались с инструментами в основе работы которых лежит этот паттерн. Например NotificationCenter, KVO или великий и могучий RxSwift который настолько сейчас популярен. В этой статье я на простом примере разберу принцип работы данного паттерна.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 2.6K
Комментарии 13

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