Методами машинного обучения (но это не точно) выбрали десять лучших (но это тоже не точно) статей и ресурсов по Swift за 2016 год. Enjoy.
https://medium.mybridge.co/swift-top-10-articles-for-the-past-year-e4551a19121#.fo1g82a48
#swift
https://medium.mybridge.co/swift-top-10-articles-for-the-past-year-e4551a19121#.fo1g82a48
#swift
Главный материал недели. Facebook выложили research paper, где целиком описали свой подход к мобильному Continuous Delivery. Готовьтесь к лонгриду.
https://research.fb.com/wp-content/uploads/2017/02/fse-rossi.pdf
#processes
https://research.fb.com/wp-content/uploads/2017/02/fse-rossi.pdf
#processes
Про пользу и вред большого количества сторонних зависимостей. Все сводится к простой формуле - польза от зависимостей в проекте обратно пропорциональна времени, затрачиваемому командой на его разработку.
http://eli.thegreenplace.net/2017/benefits-of-dependencies-in-software-projects-as-a-function-of-effort/
#cleancode
http://eli.thegreenplace.net/2017/benefits-of-dependencies-in-software-projects-as-a-function-of-effort/
#cleancode
Так, через 10 минут стартанет прямая трансляция CocoaHeads. Напоминаю, что в этот раз общаемся про разработку медиапикера, безопасность и BaaS.
https://youtu.be/vqEA3AjsG-8
#meetups
https://youtu.be/vqEA3AjsG-8
#meetups
Очень поверхностно, но зато обо всех процессах, которые есть в разработке Google. Ничего нового, но зато собрано в одном месте, и можно поглядывать в поисках лучших практик.
https://dev.by/lenta/main/razrabotka-po-v-google-praktiki-roli-i-vsyo-vsyo-vsyo
#processes
https://dev.by/lenta/main/razrabotka-po-v-google-praktiki-roli-i-vsyo-vsyo-vsyo
#processes
dev.by
Разработка ПО в Google: практики, роли и всё-всё-всё
Ветеран Google Фергюс Хендерсон подробно описал практики разработки программного обеспечения в компании. dev.by публикует полный перевод текста.
И еще вдогонку - мы вчера выложили в open source космический медиапикер, чтобы вам в своих приложениях не пришлось велосипедить.
https://github.com/avito-tech/Paparazzo
#libraries
https://github.com/avito-tech/Paparazzo
#libraries
GitHub
GitHub - avito-tech/Paparazzo: Custom iOS camera and photo picker with editing capabilities
Custom iOS camera and photo picker with editing capabilities - avito-tech/Paparazzo
Отличная статья-приключение от 2GIS про счастье и стабильность при работе с extension'ами CallKit. Шучу про стабильность. Про счастье тоже.
https://habrahabr.ru/p/323050/
https://habrahabr.ru/p/323050/
Хабр
Все «радости» CallKit или как мы делали определитель номера на iOS 10
2ГИС давно хотел поделиться с пользователями айфонов своими знаниями о телефонных номерах компаний из справочника. Android-платформа давала такую возможность,...
Еще одна история про процесс миграции на третий Swift, в этот раз от Firefox.
https://mozilla-mobile.github.io/ios/firefox/swift/core/2017/02/22/migrating-to-swift-3.0.html
#swift #refactoring
https://mozilla-mobile.github.io/ios/firefox/swift/core/2017/02/22/migrating-to-swift-3.0.html
#swift #refactoring
mozilla-mobile.github.io
Migrating Firefox for iOS to Swift 3.0
A week ago we completed the migration of the entire Firefox for iOS project from Swift 2.3 to Swift 3.0. With over 206,000 lines of code, migrating a project...
Кстати, сегодня будет очередной выпуск нашей e-mail рассылки. Подписывайтесь на http://iosgoodreads.ru.
Мэтт Галлагер написал длинный пост про историю паттерна MVC, его проблемы, возможные решения и альтернативы. Давно мы тут про MVC не набрасывали, поэтому самое время.
https://www.cocoawithlove.com/blog/mvc-and-cocoa.html
#architecture
https://www.cocoawithlove.com/blog/mvc-and-cocoa.html
#architecture
Cocoa with Love
Looking at Model-View-Controller in Cocoa
In this article, I’ll look at a little theory and history behind the primary application design pattern used in Cocoa. I’ll discuss the key shortcoming of Cocoa’s Model-View-Controller approach, Apple’s aborted efforts to address this shortcoming and wonder…
Соскучились по материалам про React Native? Тогда держите статью с ответами на удобные и не очень вопросы, связанные с фреймворком.
https://habrahabr.ru/post/323214/
#reactnative
https://habrahabr.ru/post/323214/
#reactnative
Хабр
React Native — одного JS мало
Итак, пришла пора быстро погрузиться в тему. Для усиления эффекта, использую разные техники преобразования информации в знания. В частности, представляю конспект...
Очень неплохой доклад про написание тестируемого кода на Swift. Видео не обработано, начало там примерно на 11 минуте.
https://www.youtube.com/watch?v=RcmrLEp0m_M
#swift #testing
https://www.youtube.com/watch?v=RcmrLEp0m_M
#swift #testing
Про эргономику и баланс между явностью и неявностью в контексте подходов к разработке фич языка Rust. Применимо в той же мере и к Swift.
https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html
#languages
https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html
#languages
blog.rust-lang.org
Rust's language ergonomics initiative | Rust Blog
Empowering everyone to build reliable and efficient software.
Выкатили требования к WWDC 2017 Scolarship. Если вы еще студент - заявляйтесь, шансы довольно большие.
https://developer.apple.com/wwdc/scholarships/
#apple
https://developer.apple.com/wwdc/scholarships/
#apple
Так, ну и немного про организацию кода на ночь глядя. Разбор случаев добавления опционального состояния во ViewController'ы с предлагаемыми решениями проблемы.
http://khanlou.com/2017/03/that-one-optional-property/
#cleancode
http://khanlou.com/2017/03/that-one-optional-property/
#cleancode
Общий обзор архитектуры приложений Dropbox и Carousel, использующих либу на C++ для шаринга бизнес-логики.
https://oleb.net/blog/2014/05/how-dropbox-uses-cplusplus-cross-platform-development/
#cpp #crossplatform
https://oleb.net/blog/2014/05/how-dropbox-uses-cplusplus-cross-platform-development/
#cpp #crossplatform
Ole Begemann
How Dropbox Uses C++ for Cross-Platform iOS and Android Development
Notes on talks Dropbox’s Mailbox and Carousel teams gave at UIKonf 2014 about using a C++ for sharing non-UI code between their Android and iOS apps.
Я достаточно часто сталкиваюсь с мнением, что высокое покрытие кода тестами усложняет процессы рефакторинга и делает архитектуру менее гибкой и расширяемой. Изменение каждой строчки кода ведет к переписыванию еще и нескольких связанных тестов - и с таким лютым оверхедом достаточно тяжело спорить. Аргумент про то, что этот же рефакторинг становится гораздо более безопасным, тоже не во всех ситуациях прокатит. Дядюшка Боб набрасывает очень правильные вещи на эту же тему и рассуждает про то, как надо использовать TDD, чтобы не испортить весь дизайн своего проекта.
http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html
#tdd #architecture
http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html
#tdd #architecture
Apple стали реджектить приложения, работающие с сервисом rollout.io. Ну и судя по треду вообще правила проверки в направлении выполнения произвольного кода ужесточились.
https://forums.developer.apple.com/thread/73640
#news
https://forums.developer.apple.com/thread/73640
#news
Apple
Message from Apple Review... |Apple Developer Forums
Just got this message for a few of my apps that are live in the app store (and have been for years). "Your app, extension, and/or linked framework
Обзор плюсов и минусов разных систем для CI - Travis, Xcode Server, Jenkins.
http://thebugcode.github.io/ios-continous-integration-choosing-a-build-server-and-tooling/
#ci
http://thebugcode.github.io/ios-continous-integration-choosing-a-build-server-and-tooling/
#ci
The Code Bug
iOS Continous integration: Xcode Server, Jenkins, Travis and fastlane
Twice in the last year my team was looking at the tremendous task of choosing and sticking with a continuous integration(from now on CI) server to meet our needs. With some of my previous CI experience and wishes expressed...
Не всегда хранить ключи и пароли в открытом виде, пусть даже в keychain, разумно. Обзор техник реализации шифрования для пользовательских данных на клиенте с использованием мастер-ключа.
https://swifting.io/blog/2017/01/16/33-security-implement-your-own-encryption-schema/
#security
https://swifting.io/blog/2017/01/16/33-security-implement-your-own-encryption-schema/
#security