Хотите создавать приложения для Apple, даже если раньше никогда не программировали?
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.
Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».
За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.
Участие бесплатное, регистрация по ссылке.
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.
Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».
За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.
Участие бесплатное, регистрация по ссылке.
GeekBrains
Курс Swift для начинающих. Знакомство с языком Swift | Обучение программированию онлайн | GeekBrains - образовательный портал
Хотите научиться создавать мобильные приложения? Пройдите интенсивный двухчасовой курс по Swift на GeekBrains.ru и узнайте основы языка Swift с опытными преподавателями.
Почему вложенные Optional’ы все еще существуют. Они могут быть полезны в определенном контексте, например при извлечении опциональных элементов из стека.
https://brodigy.medium.com/nested-optionals-in-swift-design-mistake-by-apple-7240ea61edd
https://brodigy.medium.com/nested-optionals-in-swift-design-mistake-by-apple-7240ea61edd
Medium
Nested Optionals in Swift, design mistake?
Some time ago I stumbled upon this extension:
Как происходит модуляризация при 110 фреймворках и 2+ приложениях. Процесс разбирается на примере выделения чата в один общий фреймворк, внедряемый в несколько приложений. Плюсом рассказывается о преимуществах явных зависимостей над неявными, использовании xcconfig для настроек сборки каждого модуля.
https://medium.com/bumble-tech/modularising-an-ios-app-3ea131a5c809
https://medium.com/bumble-tech/modularising-an-ios-app-3ea131a5c809
Medium
Modularising an iOS app
Why and how we have been breaking Badoo app up into modules
Пример, как можно организовать работу с диплинками при модульной архитектуре. Выносим обработку диплинков в сами модули, при открытии выбираем подходящий.
https://nbelopotapov.medium.com/better-routing-with-deep-links-in-ios-app-451c52371ac8
https://nbelopotapov.medium.com/better-routing-with-deep-links-in-ios-app-451c52371ac8
Medium
Better deep links handling in modular iOS App
Change you app navigation
5 июля старт Podlodka Soft Skills Crew – нашей новой конференции про софт-скиллы для инженеров!
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай по скидке!🔥По традиции, она действует до конца недели.
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай по скидке!🔥По традиции, она действует до конца недели.
podlodka.io
Онлайн-конференция Podlodka Soft Skills Crew, сезон #5
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Как избежать лишних вычислений в SwiftUI: вынести все взаимодействие с данными в отдельную сущность и отдавать их с изменениями при помощи аттрибута
https://swiftbysundell.com/articles/avoiding-swiftui-value-recomputation/
@Published
.https://swiftbysundell.com/articles/avoiding-swiftui-value-recomputation/
Swift by Sundell
Avoiding having to recompute values within SwiftUI views | Swift by Sundell
When using multiple computed properties within SwiftUI views could become problematic, and various approaches to fix those kinds of problems.
Лонгрид про модуляризацию. В Badoo собрали несколько внутренних инструментов для отображения, проверки и починки графа зависимостей, аналитики по времени и количеству билдов для каждого модуля.
https://medium.com/bumble-tech/modularising-the-badoo-ios-app-ce75d5a7aba7
https://medium.com/bumble-tech/modularising-the-badoo-ios-app-ce75d5a7aba7
Medium
Modularising the Badoo iOS app
Dealing with knock-on effects
В Xcode 13 можно будет ставить брейкпоинты на одно из нескольких замыканий или вызываемых функций внутри одной строки. Правда пока, похоже, не работает.
https://useyourloaf.com/blog/xcode-column-breakpoints/
https://useyourloaf.com/blog/xcode-column-breakpoints/
Use Your Loaf - iOS Development News & Tips
Xcode Column Breakpoints
Xcode 13 adds column breakpoints which work like a more granular version of line breakpoints.
Task local values могут помочь отделить параллельные цепочки вызовов друг от друга.
https://www.donnywals.com/what-are-swift-concurrencys-task-local-values/
https://www.donnywals.com/what-are-swift-concurrencys-task-local-values/
Donny Wals
What are Swift Concurrency’s task local values? – Donny Wals
If you’ve been following along with Swift Concurrency in the past few weeks, you might have come across the term "task local values". Task local values are, like the name suggests…
Со Swift 5.5 можно забыть про преобразования CGFloat к Double и обратно. Теперь они взаимозаменяемы.
https://www.swiftbysundell.com/tips/double-cgfloat-auto-conversions/
https://www.swiftbysundell.com/tips/double-cgfloat-auto-conversions/
Swift by Sundell
Automatic conversions between Double and CGFloat values in Swift 5.5 | Swift by Sundell
How the Swift compiler is now able to automatically perform conversions between Double and CGFloat values.
Новый способ взаимодействия с листами в SwiftUI использовал механизм always emit into client, который позволил добавить функционал и в предыдущие версии iOS.
https://peterfriese.dev/swiftui-list-item-bindings-behind-the-scenes/
https://peterfriese.dev/swiftui-list-item-bindings-behind-the-scenes/
С iOS 15 форматтеры будут работать через енумы, а не строки. Еще один шаг к свифтизации старых API.
https://nemecek.be/blog/106/new-approach-to-formatters-in-ios-15
https://nemecek.be/blog/106/new-approach-to-formatters-in-ios-15
nemecek.be
New approach to formatters in iOS 15
There are huge foundation news regarding formatters. They were basically moved behind the scenes.
Наглядно о том, что можно делать с AsyncImage. Проще некуда.
https://serialcoder.dev/text-tutorials/swiftui/asyncimage-in-swiftui/
https://serialcoder.dev/text-tutorials/swiftui/asyncimage-in-swiftui/
SerialCoder.dev
AsyncImage in SwiftUI - SerialCoder.dev
Read about the brand new AsyncImage view in the third release of SwiftUI, and load and display remote images asynchronously and effortlessly.
Actor - ссылочный тип без наследования. Он не исключает возникновения состояния гонки, но исключает возникновение невалидного состояния данных.
https://www.avanderlee.com/swift/actors/
https://www.avanderlee.com/swift/actors/
SwiftLee
Actors in Swift: how to use and prevent data races
Actors in Swift prevent Data Races by synchronizing access. Combined with nonisolated access you can prevent crashes in your apps.
Все подводки к появлению AR очков с прошедшего WWDC: live text, проработка аудио, карты и визуальные изменения.
https://www.domz.co.uk/posts/how-wwdc-21-foreshadows-ar-glasses/
https://www.domz.co.uk/posts/how-wwdc-21-foreshadows-ar-glasses/
Dominic Williams
How WWDC 21 Foreshadows AR Glasses | Dominic Williams
How WWDC 2021 is foreshadowing Apple's AR Glasses
Мы все делали неправильно - линтер не должен заниматься форматированием кода. А вы чем форматируете?
https://jasonzurita.com/linting-and-formatting-swift-part-1/
https://jasonzurita.com/linting-and-formatting-swift-part-1/
Рано или поздно все мы будем переходить на async/await (как на Swift перешли) и вот как сделать первые шаги. Гайд по заворачиванию вашего callback hell’a для красивого вызова c await.
https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/
https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/
Andy Ibanez - iOS Developer
Converting closure-based code into async/await in Swift
Learn about checked continuations and converting closure and delegate-based code into async/await in Swift.
В новом Xcode не обязательно использовать сторонние приложения для анализа HTTP трафика. Можно будет использовать внутренний инструмент. Помимо прочего он позволяет экспортировать логи в файл.
https://michaelabadi.com/articles/analyse-http-instruments/
https://michaelabadi.com/articles/analyse-http-instruments/
Michaelabadi
Analyze HTTP Traffic with new HTTP Instrument
Understanding new HTTP Instrument Xcode
Вместе с async/await пришли соответствующие модификаторы вьюшек: task, refreshable, onSubmit.
https://peterfriese.dev/swiftui-concurrency-essentials-part1/
https://peterfriese.dev/swiftui-concurrency-essentials-part1/
На iOS 15 приложения будут запускаться быстрее и немного меньше весить.
https://medium.com/geekculture/how-ios-15-makes-your-app-launch-faster-51cf0aa6c520
https://medium.com/geekculture/how-ios-15-makes-your-app-launch-faster-51cf0aa6c520
Medium
How iOS 15 makes your app launch faster
Read the full version of this post on the Emerge Tools Blog