Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день. Лучшее iOS сообщество в Телеге: @iosgt Размещение рекламы: @tatiana_2209
Airbnb делятся своим опытом миграции приложения на Swift 3, затрагивая все плюсы и минусы от этого перехода.
https://medium.com/airbnb-engineering/getting-to-swift-3-at-airbnb-79a257d2b656#.rvkb35vv2
#swift
Напоследок - отличное выступление Александра Сычева про внедрение архитектуры CQRS в iOS приложения. Доклад больше теоретический, но от этого не менее ценный. Если вам не хватает баззвордов в описании, то проспойлерю - упоминается Flux.
https://www.youtube.com/watch?v=KQ8s2xekW3k
#architecture
Официально объявляю неделю React Native. К нашей вечеринке присоединяется Instagram - оказывается, ребята тоже вовсю экспериментируют и тоже остаются довольны. Ну и, кстати, из статьи можно сделать несколько выводов об организационном устройстве их команды.
https://engineering.instagram.com/react-native-at-instagram-dd828a9a90c7#.ee4z0d6pz
#reactnative
В который уже раз про написание интерпретатора для языка X на Swift. Теперь в роли X - LISP.
https://www.uraimo.com/2017/02/05/building-a-lisp-from-scratch-with-swift/
#swift #languages
Вечерний наброс - почему VIPER зло, на примере тезисов из "той самой книги". Есть что сказать на тему? Не забывайте про наш чатик @iosgt.
Pr0Ger/why-viper-is-a-bad-choice-for-your-next-application-725f4e16fbee#.uom3tsy9o" rel="nofollow">https://medium.com/@Pr0Ger/why-viper-is-a-bad-choice-for-your-next-application-725f4e16fbee#.uom3tsy9o
#architecture #viper
Отличная статья для новичков про работу с GCD в Swift 3. Все базовые концепции и функции разбираются буквально на пальцах, так что можете смело сохранять себе или вбрасывать тем, кто задает много вопросов.
http://www.appcoda.com/grand-central-dispatch/
#swift #concurrency
Про сходства и различия в работе с памятью в языках Swift и Rust.
itchyankles/memory-management-in-rust-and-swift-8ecda3cdf5b7#.f5q4t5yoe" rel="nofollow">https://medium.com/@itchyankles/memory-management-in-rust-and-swift-8ecda3cdf5b7#.f5q4t5yoe
#languages #memory
Рассуждения Сергея Теплякова на тему разных подходов к самообучению - чтению статей, книг, домашним проектам и анализу исходного кода.
http://sergeyteplyakov.blogspot.ru/2017/02/reading-books-considered-harmful.html
#learning
Airbnb выложили крутую штуку под названием Lottie. Она позволяет легко и просто встраивать в приложения анимации, экспортнутые прямо из After Effects. Ну и еще несколько полезных фич - A/B тестирование, кеширование частых анимаций, программный контроль скорости. Ответственно подошли к созданию сообщества - не просто все выкинули на GitHub и забыли, а предварительно связались с крутыми анимационными студиями, рассказали им про свой инструмент и вытащили из них несколько крутых примеров.
https://medium.com/airbnb-engineering/introducing-lottie-4ff4a0afac0e#.686cebmtk
#tools #opensource
Я как-то пропустил обновления в XCTest, прилетевшие вместе с Xcode 8.3. Появился новый класс XCTestWaiter, который позволяет делать много крутых вещей: не фейлить тест автоматически, если XCTestExpectation незафулфиллился, управлять сразу несколькими expectation'ами и много чего еще. Ну и сам XCTestExpectation тоже прокачали и добавили несколько удобных сабклассов.
http://masilotti.com/xctest-waiting/
#testing #xcode
Транскрипт доклада с одного из Kotlin Night про паттерн "робот" - абстракцию над выполнением конкретных действий на отображаемом экране. Помогает отвязаться от деталей представления и писать автотесты, которые не будут ломаться при каждом изменении лэйаута. Хоть в докладе и приводятся примеры из Android, предложенные идеи точно так же актуальны и для iOS разработки.
https://realm.io/news/kau-jake-wharton-testing-robots/
#testing #ui #patterns
Ловите наброс с 33-мя подами, которые могут пригодиться вам в наступающем году. Список довольно спорный (я вообще не любитель такого рода подборок), но любителям новых сторонних зависимостей должно понравиться. Я вот больше с красивых логотипов порадовался.
https://medium.com/app-coder-io/33-ios-open-source-libraries-that-will-dominate-2017-4762cf3ce449#.dsbf3pk1b
#libraries
Про Framework Oriented Programming и его свойства, унаследованные от OOP. TL;DR - бейте приложения на модули, это уменьшает сложность и количество потенциальных сайд-эффектов.
https://christiantietze.de/posts/2017/01/oop-framework-oriented-programming/
#oop #architecture
Господа, появились видео MBLTdev 2016. Мой персональный фаворит, как вы можете догадаться, Сергей Крапивенский и его выступление про практическое применение принципов SOLID в iOS разработке.
http://mbltdev.ru/ru/video
#conferences #solid
Про обеспечение ABI совместимости в Swift - что это такое, к чему это приведет, и что пока что останавливает разработчиков. А по срокам - уже не обещают в конкретной версии, говорят, когда все тикеты, связанные с этим, закроют.
https://github.com/apple/swift/blob/master/docs/ABIStabilityManifesto.md
#swift #languages
Про внутреннее устройство промисов и различные операции над ними. Параллельно рекламируют свою библиотеку.
danielemargutti/hydra-promises-swift-c6319f6a6209#.efd2wf7se" rel="nofollow">https://medium.com/@danielemargutti/hydra-promises-swift-c6319f6a6209#.efd2wf7se
#patterns #swift
Алексей Денисов рассказывает про мутационное тестирование и презентует Mull - свой инструмент для этого процесса, работающий с LLVM IR. Ну вы понимаете, что это значит - готовьтесь узнать голую правду о вашем тестовом покрытии.
https://twitter.com/1101_debian/status/828717346915282944
#testing #llvm
Дочитал сегодняшний лонгрид от Орты - ретроспективу внедрения React Native в основное приложение Artsy. Прошел уже год с момента их первого знакомства с технологией, и накопленный ребятами опыт очень ценен. Маленький любитель хайпа внутри меня снова загорелся идеей погонять React Native на каком-нибудь домашнем проекте. Нет, правда, плюсы выглядят очень здраво.
http://artsy.github.io/blog/2017/02/05/Retrospective-Swift-at-Artsy/
#reactnative
Обеспечиваем потокобезопасность при работе с CoreData, закрывая NSManagedObject свифтовыми протоколами. Решение не без недостатков (в ObjC вообще не рекомендую так делать), но жизнеспособное. А по ссылке в статье есть еще вариант по работе со структурами.
https://swifting.io/blog/2017/02/05/35-structs-alternative-using-swift-protocols-to-enhance-safety-of-core-data-access/
#coredata #swift
А мы тут в рамках нашей новой организации StrongSelf завезли вам очень клевый под, который умеет делать красивый кастомный pull-to-refresh из svg-пути. Ставим, пользуемся, вбрасываем баги.
https://github.com/strongself/MRefresh
#ui #opensource #libraries
Мало одной билд-машины, чтобы прогонять тесты? Решение лежит на поверхности - подключайте компьютеры всех своих коллег к CI, нечего им простаивать. В статье рассказано подробнее про такой подход, а еще про GitLab CI.
https://blog.caramba.io/team-distributed-continuous-integration-for-xcode-projects-5e08e3d82987
#ci
Если вы живете в Москве и думаете, чем завтра заняться - попробуйте посетить местный Peer Lab в Старбаксе на Кузнецком мосту. Это такое мероприятие, на котором собирается группа разработчиков, вместе прогают, разбирают сложные вопросы и учат друг друга. Судя по официальному сайту, в Москве они проводятся еженедельно по субботам в 11 часов утра. Сам не был, но можете попробовать связаться с организатором.
http://peerlab.community/find/
#community
Кстати, уже завтра - второй выпуск нашей email рассылки. Подписывайтесь на http://iosgoodreads.ru. По вопросам спонсорства и включения дополнительных материалов - стучитесь в @etolstoy.
Читать полностью…Количество крупных Open Source приложений для iOS продолжат расти. Вчера к ним присоединился Google Chrome. Там точно есть, на что посмотреть.
https://blog.chromium.org/2017/01/open-sourcing-chrome-on-ios.html
#opensource
Эрика Садун рассказывает про лучшие практики использования кастомных операторов в Swift.
https://realm.io/news/slug-erica-sadun-operators-strong-opinions/
#swift #codestyle
Новая утилита, которая позволяет оперативно находить проблемы в xib'ах/storyboard'ах. К примеру, нереализованные IBOutlets и IBActions.
https://github.com/fastred/IBAnalyzer
#tools
Пару месяцев назад я выкладывал статью про архитектурное устройство обновленного Uber. Ребята назвали свой подход Riblets. Тут всю статью на русский язык перевели, так что есть повод еще раз к ней вернуться и попробовать применить к своим собственным задачам.
https://habrahabr.ru/company/livetyping/blog/320452/
#architecture
Возвращаемся к теме оптимизации времени компиляции проектов на Swift (да сколько можно уже). В данном случае, говорим о смешанных проектах, в которых еще остался Objective-C. Статья про то, как в Swift 3.1 оптимизирована работа с bridging header'ами.
https://swift.org/blog/bridging-pch/
#swift
С этой пятницы стартует еженедельная e-mail рассылка iOS Good Reads Weekly по мотивам публикаций в канале. В каждом выпуске - лучшие материалы за эту неделю, основные новости, ближайшие события и интересные вакансии. Периодически будет появляться эксклюзивный контент. Как всегда - никакого флуда, не больше одного письма в неделю.
Под это дело еще новый сайт делаю с архивом всех выпусков, но пока он не готов, можно подписаться через Google.Forms: https://goo.gl/forms/pjf2mqKOO49E0TGh1
#news #community
Вчерашняя новость про изменения в работе с пользователями в AppStore подняли ряд вопросов. Ловите ответы.
http://daringfireball.net/2017/01/new_app_store_review_features
#appstore