Отличная статья-приключение от 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
Инженеры Uber'а рассказали о том, почему они отказались от большого количества репозиториев под управлением CocoaPods и перешли на монорепозиторий для всей своей iOS разработки (а это более 150 человек, к слову). Активно набрасывают про Buck, кстати.
https://eng.uber.com/ios-monorepo/
#processes #tools #ci
https://eng.uber.com/ios-monorepo/
#processes #tools #ci
Uber Blog
Faster Together: Uber Engineering’s iOS Monorepo | Uber Blog
The Uber Engineering mobile team migrates to a monorepo, using Buck to test and deploy code faster and more efficiently than before.
Открылось публичное голосование за доклады для UIKonf 2017. Принимайте участие, если не поедем, то хоть на видео посмотрим потом.
http://cfp.uikonf.com/selections
#conferences
http://cfp.uikonf.com/selections
#conferences
Выложили в открытый доступ видеозаписи с недавнего CocoaHeads Moscow. Налетайте - доклад про медиапикер и особенности работы с камерой в iOS, рекомендации по безопасности мобильных приложений и реклама какого-то BaaS.
https://habrahabr.ru/company/avito/blog/323514/
#meetups #security
https://habrahabr.ru/company/avito/blog/323514/
#meetups #security
Habr
Видеозаписи со встречи CocoaHeads 1 марта 2017
1 марта в офисе Avito состоялась очередная встреча сообщества iOS разработчиков CocoaHeads. Под катом вас ждут небольшой рассказ о том, как прошёл митап, и, самое главное, видеозаписи докладов....
И еще немного новостей от Apple, на которые вчера наткнулись и сами. Теперь нельзя обновлять поля description/what's new без создания новой версии приложения и прохождения всего процесса проверки.
https://9to5mac.com/2017/03/09/developers-edit-app-store-descriptions-app-review/
#appstore #news
https://9to5mac.com/2017/03/09/developers-edit-app-store-descriptions-app-review/
#appstore #news
9to5Mac
Developers can no longer edit App Store descriptions without App Review approval [Update: reverted]
Update: This change appears to have been reverted; editing of description and what’s new fields is now possible again outside of app review. As Apple never officially acknowledged the change, it is possible that this was a temporary bug that was never intended…
Подход к написанию чистого AppDelegate на Swift. Не нравится само название про service-oriented, ну да ладно.
https://medium.com/ios-os-x-development/pluggableapplicationdelegate-e50b2c5d97dd#.noaqx1ujt
#architecture
https://medium.com/ios-os-x-development/pluggableapplicationdelegate-e50b2c5d97dd#.noaqx1ujt
#architecture
Medium
Service-oriented AppDelegate
AppDelegate is typically a huge class. It knows too much about your application and it progressively becomes a mess. Here, I will show you…
Доклад про LayoutKit - еще одного убийцу AutoLayout от LinkedIn. Как обычно, более быстрый, более предсказуемый, более надежный.
https://realm.io/news/slug-nick-snyder-layoutkit/
#ui #libraries
https://realm.io/news/slug-nick-snyder-layoutkit/
#ui #libraries