🔐 Замыкания – это независимые блоки с определенным функционалом, которые можно передать и использовать в вашем коде. Замыкания в Swift похожи на блоки в C, Objectiv-C и лямбды в других языках программирования.
Замыкания могут захватывать и хранить ссылки на любые константы или переменные из контекста, в котором они были объявлены. Эта процедура известна как заключение этих констанций и переменных, отсюда и название «замыкание».
Синтаксис замыкающего выражения имеет следующую общую форму:
Замыкания могут захватывать и хранить ссылки на любые константы или переменные из контекста, в котором они были объявлены. Эта процедура известна как заключение этих констанций и переменных, отсюда и название «замыкание».
Синтаксис замыкающего выражения имеет следующую общую форму:
{ (параметры) -> тип результата in
выражения
}
❤5🔥3
Краткая история о том, как появился VIPER
MVC превратился в Massive View Controller, т.е. огромный вьюконтроллер, в котором ему позволялось очень много. В нем было много UI и бизнес-логики, и, как следствие, такой код почти невозможно было тестировать, отлаживать и поддерживать.
Поэтому разработчикам понадобилась другая архитектура, которая была бы более-менее гибкой, соответствовала SOLID принципам (особенно "Принципу единственной ответственности") и чистой архитектуре (обзор на русском).
https://apptractor.ru/info/articles/ponimaem-arhitekturu-viper.html
MVC превратился в Massive View Controller, т.е. огромный вьюконтроллер, в котором ему позволялось очень много. В нем было много UI и бизнес-логики, и, как следствие, такой код почти невозможно было тестировать, отлаживать и поддерживать.
Поэтому разработчикам понадобилась другая архитектура, которая была бы более-менее гибкой, соответствовала SOLID принципам (особенно "Принципу единственной ответственности") и чистой архитектуре (обзор на русском).
https://apptractor.ru/info/articles/ponimaem-arhitekturu-viper.html
👍5🔥2
📝Разбираемся в памяти. Когда и что нужно использовать, где применять и как с этим работать.
💻Автор статьи @somestay
https://medium.com/p/types-of-memory-in-swift-b3e7a8cbdf32
💻Автор статьи @somestay
https://medium.com/p/types-of-memory-in-swift-b3e7a8cbdf32
Medium
Types of memory in swift
Static — Allocates memory before starting the program itself. The type of such memory is available for the entire duration of the program…
👍10
Крутой сборник вопросов и задач, которые освежат ваши знания.
https://tproger.ru/articles/sobesedovanie-ios-razrabotchika-voprosy-i-zadanija/
https://tproger.ru/articles/sobesedovanie-ios-razrabotchika-voprosy-i-zadanija/
Tproger
Собеседование iOS разработчика: вопросы и задания
Собрали для вас самые часто используемые вопросы и задания, которые дают iOS разработчикам на собеседованиях.
❤5🔥2
Шаблоны проектирования простым языком. Порождающие шаблоны
Шаблоны проектирования — это руководства по решению повторяющихся проблем. Это не классы, пакеты или библиотеки, которые можно было бы подключить к вашему приложению и сидеть в ожидании чуда. Они скорее являются методиками, как решать определенные проблемы в определенных ситуациях.
Будьте осторожны
шаблоны проектирования не являются решением всех ваших проблем;
не пытайтесь использовать их в обязательном порядке — это может привести к негативным последствиям. Шаблоны — это подходы к решению проблем, а не решения для поиска проблем;
если их правильно использовать в нужных местах, то они могут стать спасением, а иначе могут привести к ужасному беспорядку.
https://tproger.ru/translations/design-patterns-simple-words-1/
Шаблоны проектирования — это руководства по решению повторяющихся проблем. Это не классы, пакеты или библиотеки, которые можно было бы подключить к вашему приложению и сидеть в ожидании чуда. Они скорее являются методиками, как решать определенные проблемы в определенных ситуациях.
Будьте осторожны
шаблоны проектирования не являются решением всех ваших проблем;
не пытайтесь использовать их в обязательном порядке — это может привести к негативным последствиям. Шаблоны — это подходы к решению проблем, а не решения для поиска проблем;
если их правильно использовать в нужных местах, то они могут стать спасением, а иначе могут привести к ужасному беспорядку.
https://tproger.ru/translations/design-patterns-simple-words-1/
Tproger
О порождающих шаблонах проектирования простым языком
Первая статья из цикла, посвящённого шаблонам, или паттернам, проектирования. На понятных примерах объясняем суть порождающих шаблонов.
🔥5❤1
Очень хороший материал с примерами на очень важную тему 🙃
Generics 👍🏻
Материал, конечно, больше для новичков, но от этого он менее хорошим не становится. А сами дженерики используются в куче языков, поэтому разобраться в них точно нужно всем! 🤓
https://www.avanderlee.com/swift/generics-constraints/
Generics 👍🏻
Материал, конечно, больше для новичков, но от этого он менее хорошим не становится. А сами дженерики используются в куче языков, поэтому разобраться в них точно нужно всем! 🤓
https://www.avanderlee.com/swift/generics-constraints/
SwiftLee
Generics in Swift explained with code examples
Generics in Swift prevent code duplication by allowing code to be reused. It's key to know when and how to use generics in your advantage.
👍8🔥2
Хранение и использование кастомных ресурсов (картинки, шрифты, цвета) сейчас есть, наверное, в каждом приложении. И часто в этом всём встречается псевдо-контролируемый хаос 🤯
Так вот, чтобы уйти от иллюзии контроля и действительно начать удобно работать с ресурсами, автор предлагает простой, удобный и type-safe подход 👍
Конечно речь идёт об Assets обвязанных enum-ами. Возможно, многие уже поняли, о чём речь, а может даже и используют так. Но в любом случае, вот статья с примерами удобного подхода к использованию ресурсов в вашем приложении 🔥
https://runhum.medium.com/type-safe-assets-in-swift-798cab38f221
Так вот, чтобы уйти от иллюзии контроля и действительно начать удобно работать с ресурсами, автор предлагает простой, удобный и type-safe подход 👍
Конечно речь идёт об Assets обвязанных enum-ами. Возможно, многие уже поняли, о чём речь, а может даже и используют так. Но в любом случае, вот статья с примерами удобного подхода к использованию ресурсов в вашем приложении 🔥
https://runhum.medium.com/type-safe-assets-in-swift-798cab38f221
Medium
Type-safe assets in Swift
Whenever you need to refer to resources in your apps, whether it be colors, fonts or images, you typically don’t want to use magic strings…
👍5
Swiftly — это универсальный справочник, быстрая шпаргалка для разработчиков Swift. Он содержит справочные примеры использования всех нужных операторов для разработчиков всех уровней.
https://swiftly.dev/
https://swiftly.dev/
🔥15
Как iOS 16 ускоряет запуск вашего приложения.
Эти улучшение связано с ускорением проверок протоколов, которые были медленными. Кроме того, в iOS 16 сокращается время загрузки двоичного файла за счет уменьшения объема данных, загружаемых с диска. Об этом вы также можете прочитать в предыдущей статье.
https://is.gd/CgCtJU
Эти улучшение связано с ускорением проверок протоколов, которые были медленными. Кроме того, в iOS 16 сокращается время загрузки двоичного файла за счет уменьшения объема данных, загружаемых с диска. Об этом вы также можете прочитать в предыдущей статье.
https://is.gd/CgCtJU
Emergetools
Emerge Tools Blog | The Surprising Cost of Protocol Conformances in Swift
A deep dive into the Swift runtime to see how protocol conformance checks slow down post-main startup time as your binary size increases.
🔥2
Решить, какую структуру данных использовать для представления заданного набора значений, часто бывает намного сложнее, чем кажется
Стандартная библиотека Swift поставляется с тремя основными структурами данных — Array, Dictionary и Set, каждая из которых имеет свой набор оптимизаций, плюсов и минусов.
Подробнее про типы коллекций, можно озанакомиться в данной статье.
https://habr.com/ru/company/otus/blog/468239/
Стандартная библиотека Swift поставляется с тремя основными структурами данных — Array, Dictionary и Set, каждая из которых имеет свой набор оптимизаций, плюсов и минусов.
Подробнее про типы коллекций, можно озанакомиться в данной статье.
https://habr.com/ru/company/otus/blog/468239/
Хабр
Выбираем правильную структуру данных в Swift
И снова здравствуйте. Прежде чем уйти на выходные хотим поделиться с вами переводом материала, который был подготовлен специально для базового курса «iOS-разрабо...
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🛠Одним из не то, чтобы новых, но незаменимых классов в UIKit является
Если вы не знаете, что такое bottom sheet, откройте встроенное приложение «Карты», чтобы посмотреть. На нем отображается bottom sheet, на котором пользователи могут выполнять поиск и получать доступ к сохраненным местоположениям. Вы можете развернуть и свернуть его. Также этот тип шаблона пользовательского интерфейса можно найти в некоторых популярных приложениях, таких как Google Maps, Twitter и Instagram.
🔴 Теперь к коду.
Вы можете указать размер контроллера, установив свойство
UISheetPresentationController
. Этот класс позволяет легко создать раскрываемый bottom sheet всего с несколькими строками кода.Если вы не знаете, что такое bottom sheet, откройте встроенное приложение «Карты», чтобы посмотреть. На нем отображается bottom sheet, на котором пользователи могут выполнять поиск и получать доступ к сохраненным местоположениям. Вы можете развернуть и свернуть его. Также этот тип шаблона пользовательского интерфейса можно найти в некоторых популярных приложениях, таких как Google Maps, Twitter и Instagram.
🔴 Теперь к коду.
Вы можете указать размер контроллера, установив свойство
detents
. Вот пример, показывающий, как установить размер bottom sheet:let webViewController = WebViewController()
if let sheet = webViewController.sheetPresentationController {
sheet.detents = [ .medium(), .large() ]
}
present(webViewController, animated: true)
👍13
Руководство по современному асинхронному программированию
https://quickbirdstudios.com/blog/async-await-combine-closures/
https://quickbirdstudios.com/blog/async-await-combine-closures/
QuickBird Studios
Combine, Closures: A Guide to Modern Asynchronous Swift
A comparison between async/await, Combine, and closures in Swift. Includes an overview of the strengths and weaknesses of the different approaches.
🔥5
Коротенькая, но очень полезная статья с парой фишек для дебага в Xcode 🔨
Тут есть и совсем простые вещи вроде
В общем переходите по ссылке и смотрите. Всего несколько минут, зато что-то полезное можно узнать! 👍
https://medium.com/@dbelannab/xcode-debugging-tips-and-tricks-c2f4db49553e
Тут есть и совсем простые вещи вроде
po
команды в логе (я удивлён, но очень многие об этом почему-то не знают) и symbolic breakpoint
, до более интересных и менее популярных вещей из разряда команды v
для того же lldb
и изменений при дебаге без необходимости пересобирать проект 🔥В общем переходите по ссылке и смотрите. Всего несколько минут, зато что-то полезное можно узнать! 👍
https://medium.com/@dbelannab/xcode-debugging-tips-and-tricks-c2f4db49553e
Medium
Xcode Debugging tips and tricks
As a lazy software engineer, I always look for shortcuts to complete my tasks. And since we spend half of our times debugging let me share…
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Кастомный TabBar
Статья состоит из трёх частей, как реализовать вот такой таббар.
https://betterprogramming.pub/how-to-create-a-nice-uitabbar-for-your-ios-app-using-swift-5-pt-1-f9d2d5450909
Статья состоит из трёх частей, как реализовать вот такой таббар.
https://betterprogramming.pub/how-to-create-a-nice-uitabbar-for-your-ios-app-using-swift-5-pt-1-f9d2d5450909
🎉4❤2
Про базовые знаниям в Swift, сложно не вспомнить про классы и структуры
Об этом часто спрашивают на собеседованиях и обычно не ограничиваются одним-двумя вопросами.
Давайте разбираться!
https://medium.com/hash-coding/swift-structures-and-classes-part-1-582e26bdf8dd
Об этом часто спрашивают на собеседованиях и обычно не ограничиваются одним-двумя вопросами.
Давайте разбираться!
Structs
vs Classes
https://medium.com/hash-coding/swift-structures-and-classes-part-1-582e26bdf8dd
Medium
Swift — Structures and Classes — Part 1
This forms a very common question for almost all the iOS interviews. This is because it plays a significant role in choosing the right…
❤7
Ох, что-то интересное про коллекцию, верстку. Очень годная статья, летс го
https://habr.com/ru/post/495076/
https://habr.com/ru/post/495076/
Хабр
Compositional Layout в iOS 13. Основы
Добрый день, На практике iOS разработчик часто сталкивается с задачей показа большого количества информации в виде списка или в виде коллекции, как правило, для этого отлично подходят UITableView или...
🔥7👎1