iOS.Devs
5.34K subscribers
112 photos
8 videos
1 file
1.03K links
Всё самое актуальное из мира iOS разработки. По вопросам @suriksarkisyan

При поддержке qonversion.io

Чат: @ios_camp_chat.
Download Telegram
Ловите статью про 7 инструментов, которые помогут вам упростить процесс разработки на Swift 🤖
Некоторые из них мы уже рассматривали подробнее, но еще одно мнение и рекомендация лишними не будут 😊
https://betterprogramming.pub/7-tools-to-help-you-write-better-swift-code-5e25bc77e88d
👍20
Ловите совсем свежий простенький, но полезный материал на тему Color System в SwiftUI 🎨
https://rudrank.blog/color-system-swiftui
👎7👍4
Self? Self.Type? self? 🤔
Если еще не разобрались, то пора бы уже.
Вот коротко и понятно! 👏
https://chsherbak.medium.com/self-self-type-self-in-swift-ccd9025b491f
👍23
Фан чтение на пятницу. Почему user-agent выглядит так нелепо и состоит из огромного количества частей, что-то типа Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

История всех бразуеров в одном посте на 3 минуты от Mosaic Killer (так Mozilla себя называла в начале) до хрома с WebKit.

https://webaim.org/blog/user-agent-string-history/
👍2
Всегда хотели сделать свою SDK, но не было желания запариваться с дистрибьюцией? 📦
Вот хороший гайд по SPM & Cocoapods.
https://blog.devgenius.io/ios-library-support-both-cocoapods-and-swift-package-manager-983c81b35080
👍1
10 советов как сделать код-ревью эффективным

https://betterprogramming.pub/10-tips-to-write-effective-code-reviews-c25c25aa22c5

TL;DR

1. Всегда задавайтесь вопросом почему
2. Будьте основательны вне зависимости от уровня автора PR
3. Нет необходимости давать полный фикс
4. Не откладывайте ревью, планируйте время в календаре и не блочьте команду
5. Следуйте гайдам: имейте единый источник правды и ведите его для команды
6. Хвалите хороший код: учитесь разглядывать и хорошие моменты, код ревью не всегда про плохой код и подходы
7. Будьте скромны и позитивны
8. Указывайте референсы
9. Ревью не про тебя, а про команду
10. Ты не всегда прав
👍57
Пять минут и вы поймёте то, что не понимали годами 😱
И это даже не кликбейт!
Алгоритм Диффи-Хеллмана 🤔
Если у вас возник вопрос "что это?", то этот материал несомненно для вас.
Это алгоритм, который используется для безопасного обмена ключами, чтобы шифровать трафик в запросах 🗝
Звучит не особо понятно? Или даже сложно? 🤓
Посмотрите это старенькое короткое видео (5 минут), которое просто невероятно круто на примере красок и смешивания цветов объясняет, как это всё устроено 🎨
https://www.youtube.com/watch?v=vFjq9pID4-E
👍18
Хорошая статья, где два коллеги по работе запускают анимационный челендж 🧑‍💻🧑‍💻
Парное программирование с методикой Pomodoro 🍅
Автор обещает, что статей будет несколько.
В каждой из таких статей они будут делать новую полезную анимацию, делиться сложностями и, конечно, примером кода.
Вот первая 😎
https://medium.com/eureka-engineering/animations-challenges-1-bear-ios-search-animation-7ea5e4ea0a34
👍6
Есть ли у вас в коде Objective-C куски, которые вас бесят? 👨‍🦳
А конкретно, их использование в Swift и Swift Concurrency?
На самом деле Objective-C код можно удобно использовать со Swift Concurrency! 🔥
Представьте Objective-C функцию с completion block-ом, где два параметра для success сценария и NSError для случяя с ошибкой
При "бридже" в Swift Concurrency выглядеть это будет так:
let (signedValue, signature) = try await passLibrary.sign(signData, using: pass)
То есть tuple с двумя параметрами в случае успеха и throw для ошибки.
Если кто-то уже пользовался - поделитесь подводными камнями! 🗿
Вот тут подробнее обо всём этом:
https://github.com/apple/swift-evolution/blob/main/proposals/0297-concurrency-objc.md
👍6
Ловите свежую статью, где ребята из SkyEng делятся своей болью поддержки старых версий приложения и предлагают инструменты для force update 🆕
В комментариях, кстати, мнения на эту тему разошлись 💬
А вы как считаете? Стоит ли жёстко пушить пользователей обновляться или пусть сидят на старых версиях? 🤔
https://habr.com/ru/company/skyeng/blog/593571/
👎10👍63
Большая (на ~10 минут чтения), но хорошая и подробная статья о том, как сделать кастомный лоадер на Swift 5
Внутри ссылка на гитхаб с результатом!
https://medium.com/@margels/nice-loading-screen-animation-with-swift-5-0-d9b2794e294e
👎14👍10
Самодокументируемый код 📄
С одной стороны, кажется, все мы понимаем, что это. С другой, всё ещё звучит как-то абcтрактно 🔮
Вот хорошая статья, где автор рассказывает своё видение и делится опытом, как писать хороший самодокументируемый код 👏
https://www.avanderlee.com/swift/self-documenting-code/
👍4
Начало недели не всегда бывает лёгким, поэтому давайте хотя бы не будем сегодня нагружаться сложным для чтения контентом.
Ловите забавную статью о том, как эволюционировал Xcode.
Особенно интересно будет тем, кто застал Xcode не так давно.
Если всю статью читать лень, то хотя бы ради ностальгии (или удивления) рекомендую полистать картинки.

А вот краткий экскурс:
1992 год - Project Builder (предшественник Xcode).
2003 год - Появление Xcode (Project Builder "заребрендили"). Никакого автокомплита, inline документации и интеграции с Github
2004 год - Xcode 1.5. Появление автокомплита.
2005 год - Xcode 2.0. Quartz Composer для работы с анимациями и Apple Reference Library (используется до сих пор) для работы с документацией.
2006 год - Xcode 2.1. Переезд на Intel процессоры, поддержка universal binary apps - разработчики перестали париться о "процессоро-зависимом" коде. Поддержка unit тестов и брейкпоинтов.
2007 год - Xcode 3.0. DTrace для дебаггинга (сейчас Instruments). Добавлены изменения Objective-C 2.0, сборка мусора, рефакторинг и поддержка 32 и 64-битных процессоров.
2008 год - Xcode 3.1. iPhone SDK и разработка под iOS.
2010 год - Xcode 4.0. Новый интерфейс и объединение IDE с Interface Builder-ом в одну аппку. Дроп поддержки GCC компилятора и полный переход к LLVM. Новая дистрибьюция и обязательный платёж в Mac App Store (4.99$ или 99$), который отменили сразу в версии 4.1.
2011 год - Xcode 4.2. iOS 5, Storyboards, ARC.
2013 год - Xcode 5.0. Поддержка 64-битных iPhone. Выпил наследия про сборщик мусора для Mac таргетов в версии 5.1.
2014 год - Xcode 6.0. Swift и Playground.
2015 год - Xcode 7.0. Swift, Metal. Деплой на iOS девайсы без учетки разработчика.
2016 год - Xcode 8.0. Swift 3.0.
2017 год - Xcode 9.0. Swift 4.0, Metal 2. Дебаг через Wi-Fi.
2018 год - Xcode 10.0. Поддержка Bitbucket, Gitlab, Github. Обучение CoreML моделей.
2019 год - Xcode 11.0. SwiftUI, SPM.
2020 год - Xcode 12.0. Примерно ничего нового.
2021 год - Xcode 13.0. Swift concurrency, улучшение работы с VCS.
2022 год - я больше не буду писать такие краткие экскурсы, это слишком сложно. А в статье информации еще больше, советую и там почитать.

А с какой версии Xcode вы занимаетесь разработкой и какой фиче были рады больше всего?

http://martiancraft.com/blog/2022/01/xcode-through-the-years/
👍14
Языки программирования, которые стоит учить в 2022 году 🤓
Очень большой материал на тему, что же учить в 2022 году, что можно рассмотреть, а чего стоит избегать.
Автор приводит интересные данные, сравнивает языки, показывает графики популярности, хоронит Ruby, между делом называет Россию страной второго (🥳 или 🤦‍♂️?) мира и многое другое.
Статистика действительно интересная и с ней можно не соглашаться.
Например, если вы, как я, не очень любите JS, а автор считает его топ1 претендентом на "изучить".
А к Swift и Kotlin автор предлагает присмотреться, в список тех, что точно надо учить, они не попали 🤷‍♂️
https://medium.com/@zriyans/programming-languages-to-avoid-and-learn-in-2022-ace5cf9fd11b
👎3👍1
Недавно мы рассматривали статью, где два товарища по работе запускали animation challenge, где они по системе Pomodoro парно кодят разные прикольные анимации на Swift.
Вот вторая статья из этого челленджа 🔥
В этой части, правда, только один разработчик участвует 🙃
Недолгое получилось парное программирование, посмотрим, что у них будет дальше.
Простенькая, но полезная и красивая анимация полосы загрузки 🌈
https://medium.com/eureka-engineering/animations-challenges-2-asana-loader-animation-c3a6d040f358
💩8👍2
Gojek 🛵
Вы, скорее всего, не слышали про эту компанию и их приложение, если не были где-то в Азии.
На самом деле это огромная компания и гигант в сфере такси и доставок. Возят, как на машинах, так и на байках!
Такой своего рода Яндекс Go.
Большое приложение, 40+ git submodule-ей, команда из ~100 iOS (!!!) разработчиков, сотни коммитов каждый день, в жаркие (речь не про погоду) дни у них запускается около 300-350 CI Pipeline 🔥
Вышла классная статья от них, где они рассказывают, как срезали build time на 50%
Всё подробно, с графиками, циферками, сравнением.
https://medium.com/gojekengineering/reducing-our-build-time-by-50-835b54c99588
👍14🔥1
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов.

Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.

🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/mobile_onedayoffer
👍3
Небольшое чтиво на выходные.
SwiftUI и его EnvironmentObject - property wrapper для шеринга данных между вьюшками!
https://www.avanderlee.com/swiftui/environmentobject
👍13
Content hugging & compression resistance
Части autolayout, которые до сих пор не все понимают. А ведь эти две вещи постоянно спрашивают на собеседованиях🧐
Пора разобраться! 😎
Отличная подробная статья обо всём этом! 🖤
https://betterprogramming.pub/what-are-content-hugging-and-compression-resistance-in-swift-60275f6dc69e
👍13
Долгожданный 8-й сезон Podlodka iOS Crew стартует уже 14 февраля!

5 дней и 10 экспертных сессий, в ходе которых участники онлайн-конференции смогут собрать актуальный cookbook по оптимизации своих приложений для iOS.

Что в программе:

– Александр Лис из Skyeng раскроет секреты плавного интерфейса, рендеринга, расскажет о подводных камнях и способах их обойти;
– Александр Сычев и Михаил Харитончик из Сбера научат безболезненно исцелять out of memory errors и расскажут как их предупреждать;
– Павел Воробкалов поведает про оптимизацию времени старта на примере кейсов Яндекса;
– Александр Денисов из GitHub оптимизирует работу компилятора в прямом эфире;
– Александр Антонов из Тинькофф покажет способы ускорить фичу в сто раз;
– и еще вы множество крутых докладов!

Билеты уже на сайте Podlodka iOS Crew.
Не пропусти одно из главных событий для iOS-разработчиков. Погружаемся уже совсем скоро! 😉
👍12🔥1