У Google новые смартфоны, новые наушники, новая камера и даже новая NoSQL-база данных! У iOS же открытый код ядра и проблемы с Uber. Если серьезно, то в новом дайджесте есть еще оптические эффекты, отказ HP от Windows 10 Mobile, сертификация Xamarin University, игровая реклама, лучшие приложения и многое другое.
Рубрика «swift» - 30
Дайджест интересных материалов для мобильного разработчика #224 (2 октября — 8 октября)
2017-10-08 в 16:28, admin, рубрики: apple, Google, ios 11, kotlin, swift, uber, xamarin, Блог компании Everyday Tools, маркетинг мобильных приложений, разработка игр, разработка мобильных приложений, Разработка под android, разработка под iOSAPI на Swift за пять минут. Лекция в Яндексе
2017-10-08 в 11:32, admin, рубрики: api, coredata, mysql, open source, perfect, s3, server-side, swift, swift server side, vapor, xcode, Блог компании Яндекс, зависимости, Промышленное программированиеЕсть мнение, что Swift — особенно благодаря развитию в опенсорсе — уже сейчас применим за рамками софта для платформ Apple. Наши коллеги из «Рамблера», включая разработчика Самвела Меджлумяна, даже пробуют этот язык в качестве серверного решения. На встрече сообщества CocoaHeads Самвел перечислил готовые продукты для построения сервера на Swift, сравнил их между собой и показал короткое демо.
Swift Generics: cтили для UIView и не только #2
2017-10-01 в 14:15, admin, рубрики: associatedtype, generics, iOS, protocol, swift, typealias, uiview, xcode, разработка мобильных приложений, разработка под iOSДанная публикация является продолжением выпуска, где была затронута тема декорирования объектов. Ознакомление с первой публикацией поможет лучше вникнуть в текущий в контекст, т.к. упомянутые ранее термины и решения буду описываться с упрощениями.
Подход получился весьма удачным и был многократно протестирован на реальных проектах. Кроме этого, появились дополнения к подходу и удобство его использования значительно возросло.
Напомню, что основным элементом представленного способа задания стилей является обобщенное замыкание:
typealias Decoration<T> = (T) -> Void
Использовать данное замыкание для придания свойств UIView
можно следующим образом:
Дайджест интересных материалов для мобильного разработчика #223 (25 сентября — 1 октября)
2017-10-01 в 13:16, admin, рубрики: App Store, arkit, badoo, Google Play, swift, ux дизайн, xcode 9, Блог компании Everyday Tools, маркетинг мобильных приложений, разработка игр, разработка мобильных приложений, Разработка под android, разработка под iOSПодводим итоги очередной недели мобильным дайджестом. В нем мы рассказываем про разработку прибыльной игры школьниками, про iOS-релизы в Badoo, про новые правила App Store и победителей Google Play, иллюзии скорости и движения, анонимность и многое другое.
Опционалы в Swift
2017-09-28 в 16:53, admin, рубрики: swift, swift разработка, Программирование, разработка мобильных приложений, разработка под iOSНесмотря на некоторый опыт в мобильной разработке (в том числе с применением Swift), регулярно на почве свифтовых опционалов возникали ситуации, когда я знал что нужно делать, но не совсем внятно представлял, почему именно так. Приходилось отвлекаться и углубляться в документацию — количество "заметок на полях" пополнялось с удручающей периодичностью. В определенный момент они достигли критической массы, и я решил упорядочить их в едином исчерпывающем руководстве. Материал получился довольно объемным, поскольку предпринята попытка раскрыть тему максимально подробно. Статья будет полезна как начинающим Swift-разработчикам, так и матерым профессионалам из мира Objective-C — есть ненулевая вероятность, что и последние найдут для себя что-то новое. А если не найдут, то добавят свое новое в комментарии, и всем будет польза.
CGLayout — новая система автоматического layout’а в iOS
2017-09-23 в 0:42, admin, рубрики: autolayout, calayer, cglayout, iOS, layout, open source, swift, uikit, uiview, разработка мобильных приложений, разработка под iOSПривет!
Хочу представить мою последнюю open-source разработку — CGLayout
— вторая система разметки в iOS после Autolayout, основанная на ограничениях.
"Очередная система автолайаута… Зачем? Для чего?" — наверняка подумали вы.
Действительно iOS сообществом создано уже немало layout-библиотек, но ни одна так и не стала по-настоящему массовой альтернативой ручному layout`у, не говоря уже про Autolayout.
CGLayout
работает с абстрактными сущностями, что позволяет одновременно использовать UIView, CALayer и not rendered
объекты для построения разметки. Также имеет единое координатное пространство, что позволяет строить зависимости между элементами, находящимися на разных уровнях иерархии. Умеет работать в background потоке, легко кешируется, легко расширяется и многое-многое другое.
CGLayout
функциональный продукт, у которого есть хорошие перспективы развиться в большой проект.
Абстракция сетевого слоя с применением «стратегий»
2017-09-21 в 19:51, admin, рубрики: alamofire, DRY, iOS, moya, RxSwift, solid, srp, swift, xcode, разработка под iOSОт всех моих предыдущих реализаций сетевого слоя осталось впечатление, что есть еще куда расти. Данная публикация ставит целью привести один из вариантов архитектурного решения по построению сетевого слоя приложения. Речь пойдет не об очередном способе использования очередного сетевого фреймворка.
Часть 1. Взгляд на существующие подходы
Для начала из публикации 21 Amazing Open Source iOS Apps Written in Swift взято приложение Artsy. В нем используется популярный фреймворк Moya, на базе которого и построен весь сетевой слой. Отмечу ряд основных недостатков, которые встретил в данном проекте и часто встречаю в других приложениях и публикациях.
Когда размер имеет значение: создаем приложение-линейку с помощью ARKit
2017-09-13 в 11:01, admin, рубрики: apple, AR, arkit, ios 11, SDK, swift, xcode, xcode 9, Блог компании Everyday Tools, линейка, Разработка под AR и VR, разработка под iOS
Вот и прошел день долгожданного официального релиза iOS 11, а значит откладывать знакомство с ARKit – SDK производства Apple для создания приложений с дополненной реальностью — больше никак нельзя. О сути инструмента наслышаны многие: с помощью ARKit можно накладывать созданную виртуальную реальность на реальный мир вокруг нас. iPhone или iPad при этом выступают в роли смотрового окна, через которое мы можем наблюдать за происходящим и что-то в нем менять. В Интернете уже представлено немало различных демо-приложений – с их помощью можно расставлять мебель, парковать автомобиль на стоянке, рисовать в окружающем пространстве, создавать двери в другие миры и многое другое. Словом, круг возможностей широкий, нужно только разобраться с технической реализацией.
Читать полностью »
По итогам Rambler.iOS #9
2017-09-05 в 14:45, admin, рубрики: iOS, iOS разработка, out of memory error, rambler.ios, Rambler&Co, swift, swift server side, Блог компании Rambler&Co, разработка мобильных приложений, разработка под iOS, статический анализ кода
Вот и лето прошло, словно и не бывало и голодные до знаний разработчики потянулись в школу, университет или на онлайн-курсы. Для них, а также для всех, интересующихся iOS-разработкой, мы подготовили отчет о митапе Rambler.iOS, который был анонсирован ранее.
RxSwift: немного о share(), replay(), shareReplayLatestWhileConnected() и других классных операторах
2017-09-02 в 11:09, admin, рубрики: functional programming, reactive programming, RxSwift, swift, Программирование, разработка под iOS, Разработка под OS X, функциональное программированиеЯ уже писал про Publish, Connect и RefCount в RxSwift. Для того, чтобы лучше раскрыть тему, представляю вашему вниманию перевод другой замечательной статьи, про различия между такими операторами, как share(), replay(), replayAll(), shareReplay(), publish() и shareReplayLatestWhileConnected().
Частая ошибка, которую совершают новички, взявшиеся за освоение Rx — это непонимание того, что цепочка операторов на Observable выполняется заново с каждым новым подписчиком:
let results = query.rx.text
.flatMapLatest { query in
networkRequestAPI(query)
}
results.subscribe(...) // один запрос в сеть
results.subscribe(...) // другой запрос
Мы имеем несколько подписчиков на один-единственный Observable, но мы не хотим, чтобы его код исполнялся с каждым новым Subscriber'ом. Для этого в RxSwift имеется несколько операторов. Вот резюмирующая табличка, описывающая каждый из них:
1 — ретранслирует произведенных до подписки элементов не больше, чем bufferSize.
2 — ретранслирует 1 элемент, произведенный до подписки, до тех пор, пока существует хотя бы один подписчик.
Читать полностью »