Обзорный пост по всем нововведениям на WWDC23 для iOS Dev
WWDC подошла к концу, но для нас всё только начинается.
Новые девайсы будут представлены только осенью, а до тех пор в проектах можно попробовать внедрить что-то из нижеперечисленного.
Технологии
🔘 8 новых фреймворков — описание, детали и требования.
🔘 Представленные технологии в формате кратких хайлайтов от Apple.
🔘 Топ-5 нововведений в Xcode 15 и все релизноты бета-версии.
Код и примеры
🔗 Проекты, показанные во время презентации, отобранные Apple.
🔗 SwiftData — туториал с примерами от Kodeco.
🔗 Адаптация проекта с Core Data к новой SwiftData.
🔗 Серии вопросов и ответов, связанных с SwiftData и CoreData.
Новые инструменты
🔨 Push notifications console.
Что точно пригодится
📖 Новый метод для контроллера
📖 Изменения в локализации проектов.
Какие видео можно посмотреть в первую очередь
📺 Изменения в UIKit.
📺 Анализ зависаний с помощью инструментов.
📺 Разбор структурированного параллелизма (не только основы).
📺 Новые возможности дебага, и для чего нужен dwim-print.
📺 Swift-макросы и как они могут упростить написание сложных функций.
Кроме этого, вы всегда можете прочесть об основных изменениях вот с этого поста.
👩🎓 А я, в свою очередь, постараюсь оперативно сообщать о важном здесь, в канале:
😃 iOS Dev
WWDC подошла к концу, но для нас всё только начинается.
Новые девайсы будут представлены только осенью, а до тех пор в проектах можно попробовать внедрить что-то из нижеперечисленного.
Технологии
🔘 8 новых фреймворков — описание, детали и требования.
🔘 Представленные технологии в формате кратких хайлайтов от Apple.
🔘 Топ-5 нововведений в Xcode 15 и все релизноты бета-версии.
Код и примеры
🔗 Проекты, показанные во время презентации, отобранные Apple.
🔗 SwiftData — туториал с примерами от Kodeco.
🔗 Адаптация проекта с Core Data к новой SwiftData.
🔗 Серии вопросов и ответов, связанных с SwiftData и CoreData.
Новые инструменты
Что точно пригодится
📖 Новый метод для контроллера
viewIsAppearing
.📖 Изменения в локализации проектов.
Какие видео можно посмотреть в первую очередь
📺 Изменения в UIKit.
📺 Анализ зависаний с помощью инструментов.
📺 Разбор структурированного параллелизма (не только основы).
📺 Новые возможности дебага, и для чего нужен dwim-print.
📺 Swift-макросы и как они могут упростить написание сложных функций.
Кроме этого, вы всегда можете прочесть об основных изменениях вот с этого поста.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤🔥8❤5🔥1👏1🤩1💯1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Необычный эффект увеличительного стекла с использованием Metal в iOS 17
🤩 Уже знакомый нам Janum Trivedi применил интересный подход к тому, чтобы повторить эффект лупы, который вы можете увидеть на гифке.
Для этого он использовал
🛠 Кстати, решение опенсорсное, а пример кода доступен на github.
😃 iOS Dev
Для этого он использовал
Metal
, а также свою библиотеку Wave
, о которой можно прочитать здесь.🛠 Кстати, решение опенсорсное, а пример кода доступен на github.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8🤩2❤1👏1🏆1🆒1
String Catalogs в Xcode 15: новый инструмент для локализации
Раньше, если вы хотели локализовать свое приложение, вам приходилось самостоятельно поддерживать файлы
Было много ручной работы, которая могла привести к проблемам, поскольку все контролировать не так просто.
Apple упростила для разработчиков локализацию наших приложений, добавив
Каталог строк автоматически отслеживает все локализуемые строки из вашего кода и хранит переводы в одном месте.
📺 Видео с WWDC, объясняющее то, как работают каталоги строк.
📖 Официальная документация Apple.
📖 Пример интеграции в реальный проект.
😃 iOS Dev
Раньше, если вы хотели локализовать свое приложение, вам приходилось самостоятельно поддерживать файлы
strings
. Было много ручной работы, которая могла привести к проблемам, поскольку все контролировать не так просто.
Apple упростила для разработчиков локализацию наших приложений, добавив
каталоги строк
(string catalogs).Каталог строк автоматически отслеживает все локализуемые строки из вашего кода и хранит переводы в одном месте.
📺 Видео с WWDC, объясняющее то, как работают каталоги строк.
📖 Официальная документация Apple.
📖 Пример интеграции в реальный проект.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥9👏2💯2🏆2⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
Превью документации в Xcode 15
🤩 Теперь c помощью
Полезная фича для любого проекта (особенного на сотни тысяч строк кода).
😃 iOS Dev
Assistant
можно включить превью документации в режиме реального времени. Полезная фича для любого проекта (особенного на сотни тысяч строк кода).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍10❤2❤🔥2🤩2💯2👏1🏆1🆒1
🏆 Coderun завершён [бонусный уровень]
Для того, чтобы распределить лучших участников контеста, вчера добавили новые задачи. Пока я опомнился и увидел новую партию, уже было поздно, но буду объективен, за топ-3 было бы тяжело бороться, уровень участников слишком высокий.
Несмотря на это, после прохождения основной части сезона, было бы не совсем правильно опускать руки. Поэтому я и сделал финишный рывок.
Мои впечатления от сезона
Было сложно, особенно в начале, выход из зоны комфорта и так далее. Говорят, что в бэкэнде задачи гораздо тяжелее, но всё относительно, и наша с вами работа в другом векторе программирования.
Не все кнопки просто покрасить и не все анимации даются с первого раза. Где-то в середине сезона я решал задачи даже ночью, хотя можно было бы просто отложить всё это и остановиться.
Из плюсов соревнования: некоторые модераторы в чате соревнования отвечают буквально круглосуточно (откуда они только берут силы на это), ведь переключение фокуса между разными треками задача та ещё.
И пусть это только первый сезон, а некоторые огрехи решались уже в процессе (какие-то тесты или условия), но они минорные и я понимаю, насколько сложно запустить подобный проект.
Из пожеланий (знаю, что меня читают сотрудники Яндекса): прикрутите, пожалуйста, оповещения, и в следующем сезоне для финальной части заранее определите время выкладки дополнительных задач.
🤩 Кстати, в некоторых треках участвовало больше двух тысяч человек, что несомненно успех для мероприятия.
А вы всё ещё можете побороться за топ-50 в мобильной разработке:
🔗 Попробовать свои силы можно здесь.
😃 iOS Dev
Для того, чтобы распределить лучших участников контеста, вчера добавили новые задачи. Пока я опомнился и увидел новую партию, уже было поздно, но буду объективен, за топ-3 было бы тяжело бороться, уровень участников слишком высокий.
Несмотря на это, после прохождения основной части сезона, было бы не совсем правильно опускать руки. Поэтому я и сделал финишный рывок.
Мои впечатления от сезона
Было сложно, особенно в начале, выход из зоны комфорта и так далее. Говорят, что в бэкэнде задачи гораздо тяжелее, но всё относительно, и наша с вами работа в другом векторе программирования.
Не все кнопки просто покрасить и не все анимации даются с первого раза. Где-то в середине сезона я решал задачи даже ночью, хотя можно было бы просто отложить всё это и остановиться.
Из плюсов соревнования: некоторые модераторы в чате соревнования отвечают буквально круглосуточно (откуда они только берут силы на это), ведь переключение фокуса между разными треками задача та ещё.
И пусть это только первый сезон, а некоторые огрехи решались уже в процессе (какие-то тесты или условия), но они минорные и я понимаю, насколько сложно запустить подобный проект.
Из пожеланий (знаю, что меня читают сотрудники Яндекса): прикрутите, пожалуйста, оповещения, и в следующем сезоне для финальной части заранее определите время выкладки дополнительных задач.
А вы всё ещё можете побороться за топ-50 в мобильной разработке:
🔗 Попробовать свои силы можно здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆22👍8🔥5❤4👏3🎉1
visionOS 1 beta доступен! Выпустили Xcode 15 beta 2
Как пишет Apple, все начинается со строительных блоков пространственных вычислений в
Дефолтно приложения запускаются в
Внутри
🛠 Скачать бету Xcode можно с официального сайта.
📖 Путешествие в дивный новый мир можно начать с описания возможностей.
😃 iOS Dev
Как пишет Apple, все начинается со строительных блоков пространственных вычислений в
visionOS
.Дефолтно приложения запускаются в
Shared Space
, где они существуют рядом — так же, как несколько приложений на рабочем столе Mac. Внутри
Full Space
можно создавать 3D-контент, открывать портал в другой мир или даже реализовывать иммерсивное погружение.🛠 Скачать бету Xcode можно с официального сайта.
📖 Путешествие в дивный новый мир можно начать с описания возможностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3🤩3💯2👏1🏆1
iOS Dev
visionOS 1 beta доступен! Выпустили Xcode 15 beta 2 Как пишет Apple, все начинается со строительных блоков пространственных вычислений в visionOS. Дефолтно приложения запускаются в Shared Space, где они существуют рядом — так же, как несколько приложений…
Накатил бетку, увидел ещё одно подтверждение того, что название
🤩 Доказательства этого есть при установки симулятора (на скриншоте).
😃 iOS Dev
visionOS
появилось буквально в последний момент (видимо всё было настолько быстро перед релизом, что оно до сих пор осталось).Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍10😁6❤2🌚2🤣2🤩1🏆1
🤩 Все изменения в Swift 5.9. В if и switch теперь можно не использовать return (но не только)!
Поскольку и
И хотя
📖 В этом обзоре Пол Хадсон расказывает о наиболее значимых изменениях, представляя примеры кода и пояснения (что более важно).
Для тестирования вам понадобится актуальный тулчейн Swift 5.9, доступный в Xcode 14, или бета-версия Xcode 15.
😃 iOS Dev
Поскольку и
if
, и switch
теперь могут использоваться как выражения, мы можем написать функцию как на скриншоте выше, без использования return! А все благодаря принятому предложению. И хотя
Swift 6
маячит на горизонте, выпуски 5.x всё также упрощают синтаксис. Не только if и switch, но и макросы, а также многое другое делают релиз 5.9 более впечатляющим.📖 В этом обзоре Пол Хадсон расказывает о наиболее значимых изменениях, представляя примеры кода и пояснения (что более важно).
Для тестирования вам понадобится актуальный тулчейн Swift 5.9, доступный в Xcode 14, или бета-версия Xcode 15.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍8🤩2❤1👏1💯1🏆1
Работа со словарями в Swift: базовые понятия и примеры
Я знаю, что в нашем канале довольно много новичков, поэтому периодически рассказываю не только о каких-то сложных вещах, но также считаю не лишним напомнить об основах.
Словари широко используются в Swift и помогают хранить и получать доступ к данным с логическими отношениями или структурами, такими как контактная информация, сведения о продукте, настройки и так далее. В других языках программирования в таких случаях идёт речь о хэшмапах, хэш-таблицах или ассоциативных массивах.
📖 Здесь представлены основные понятия, а также примеры работы со словарями, в частности:
1️⃣ Что такое словарь в Swift?
2️⃣ Как создать словарь с содержимым или пустой словарь.
3️⃣ Доступ к содержимому словаря с помощью
4️⃣ Добавление, удаление и обновление элементов словаря.
5️⃣ Итерация по словарю с использованием цикла
Кстати, раньше я делился о том, как можно преобразовывать коллекции в Swift, если вы новичок, вам может быть это интересно🧑💻 .
😃 iOS Dev
Я знаю, что в нашем канале довольно много новичков, поэтому периодически рассказываю не только о каких-то сложных вещах, но также считаю не лишним напомнить об основах.
Словари широко используются в Swift и помогают хранить и получать доступ к данным с логическими отношениями или структурами, такими как контактная информация, сведения о продукте, настройки и так далее. В других языках программирования в таких случаях идёт речь о хэшмапах, хэш-таблицах или ассоциативных массивах.
📖 Здесь представлены основные понятия, а также примеры работы со словарями, в частности:
1️⃣ Что такое словарь в Swift?
2️⃣ Как создать словарь с содержимым или пустой словарь.
3️⃣ Доступ к содержимому словаря с помощью
subscripts
.4️⃣ Добавление, удаление и обновление элементов словаря.
5️⃣ Итерация по словарю с использованием цикла
for
.Кстати, раньше я делился о том, как можно преобразовывать коллекции в Swift, если вы новичок, вам может быть это интересно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥5❤3⚡1👏1💯1
Макросы в Swift: для чего нужны, как создавать и где посмотреть примеры
🐣 Нововведение в Swift позволяет расширить возможности компилятора с помощью кастомных проверок. Их можно использовать для анализа вашего кода и выдачи более детальных ошибок или же для удаления бойлерплейт-кода.
Например, можно чекать валидность URL во время компиляции:
С помощью хэштега мы вызываем наш макрос, а под капотом, например, может быть проверка на существование такого URL в целом.
Сейчас кажется, что вместо них вполне можно использовать расширения, но возможность опенсорсной выкладки и интеграции в проекты это несомненный плюс.
📖 Вот тут есть пример создания несложного макроса по шагам.
🛠 А в этом репозитории представлен пополняемый список опенсорсных макросов.
😃 iOS Dev
Например, можно чекать валидность URL во время компиляции:
let checkedURL = #URL("https://yangx.top/iOS_Career")
С помощью хэштега мы вызываем наш макрос, а под капотом, например, может быть проверка на существование такого URL в целом.
Сейчас кажется, что вместо них вполне можно использовать расширения, но возможность опенсорсной выкладки и интеграции в проекты это несомненный плюс.
📖 Вот тут есть пример создания несложного макроса по шагам.
🛠 А в этом репозитории представлен пополняемый список опенсорсных макросов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥6❤3🎉1💯1🏆1
Xcode позволит разработчикам создавать приложения автоматически?
Казалось бы, что может быть круче анонсированной visionOS, но обо всём по порядку.
27 июня 2023 года в Apple подали патент, в котором, в частности, есть следующие моменты:
1️⃣ Генератор кода будет создавать подпрограмму, которая облегчит доступ ... поддерживаемый конкретным языком программирования (не только Swift).
2️⃣ Разработчик cможет затем воспользоваться автокомплитом, обнаружением ошибок имени или типа т.д., - продолжает Apple.
3️⃣ Код, как говорится в патенте, будет совместим с конкретным языком программирования, используемым в проекте.
Понимаете, к чему я веду?
Пока в компании запрещают пользоваться ChatGPT, а остальные упрекают Apple в том, что она не делает ничего, чтобы соревноваться с Google, OpenAI или продуктом Microsoft, на самом деле в Apple уже делают аналог ChatGPT.
Ускорение написания кода позволит Xcode выполнять большую часть работы, которая нужна начинающим или менее опытным разработчикам. А если читать между строк — то выполнять работу вместо них.
Предыдущие патенты по схожей тематике датируются 2016 годом (источник), и это означает, что Apple делает свою ChatGPT как минимум 7 лет.
😃 iOS Dev
Казалось бы, что может быть круче анонсированной visionOS, но обо всём по порядку.
27 июня 2023 года в Apple подали патент, в котором, в частности, есть следующие моменты:
1️⃣ Генератор кода будет создавать подпрограмму, которая облегчит доступ ... поддерживаемый конкретным языком программирования (не только Swift).
2️⃣ Разработчик cможет затем воспользоваться автокомплитом, обнаружением ошибок имени или типа т.д., - продолжает Apple.
3️⃣ Код, как говорится в патенте, будет совместим с конкретным языком программирования, используемым в проекте.
Понимаете, к чему я веду?
Пока в компании запрещают пользоваться ChatGPT, а остальные упрекают Apple в том, что она не делает ничего, чтобы соревноваться с Google, OpenAI или продуктом Microsoft, на самом деле в Apple уже делают аналог ChatGPT.
Ускорение написания кода позволит Xcode выполнять большую часть работы, которая нужна начинающим или менее опытным разработчикам. А если читать между строк — то выполнять работу вместо них.
Предыдущие патенты по схожей тематике датируются 2016 годом (источник), и это означает, что Apple делает свою ChatGPT как минимум 7 лет.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤯12❤4👍4👏3⚡2😁2🤔2😢1🏆1🤓1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание сложных интерфейсов в SwiftUI: вертикальный список с возможностью горизонтальной прокрутки
Пожалуй, одна из непростых, но в то же время часто встречающихся задач — реализация такого отображения.
📖 В этом обучающем материале от Applе вы сможете внимательнее изучить один из возможных подходов и посмотреть, как такой интерфейс может адаптироваться к различным размерам и ориентациям устройств.
🛠 А по этой ссылке доступны оба проекта (стартовый и финальный).
🧑💻 К слову, вот тут в нашем канале есть пост о том, как можно реализовать двунаправленную
😃 iOS Dev
Пожалуй, одна из непростых, но в то же время часто встречающихся задач — реализация такого отображения.
📖 В этом обучающем материале от Applе вы сможете внимательнее изучить один из возможных подходов и посмотреть, как такой интерфейс может адаптироваться к различным размерам и ориентациям устройств.
🛠 А по этой ссылке доступны оба проекта (стартовый и финальный).
UICollectionView
(тоже с примерами).Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🤩8❤4🔥2👏1🏆1
Серии вопросов и ответов, связанных с SwiftData и CoreData
Keith Harrison (автор сайта useyourloaf) задавал вопросы на QA-сессии в Slack напрямую инженерам Apple, после чего поделился кратким изложением информации, которую узнал.
И пусть
🔘 Асинхронные операции.
🔘 Синхронизация
🔘 Вопросы, посвященные миграции с
📖 Про
🧑💻 Кстати, напоминаю, что у нас есть пополняемый список обновлений с WWDC23.
😃 iOS Dev
Keith Harrison (автор сайта useyourloaf) задавал вопросы на QA-сессии в Slack напрямую инженерам Apple, после чего поделился кратким изложением информации, которую узнал.
И пусть
SwiftData
пока только анонсирована, уже есть важные моменты, на которые стоит обратить внимание:🔘 Асинхронные операции.
🔘 Синхронизация
CloudKit
.🔘 Вопросы, посвященные миграции с
CoreData
и так далее.📖 Про
SwiftData
можно прочесть здесь, а про CoreData материал доступен вот тут.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3❤1👏1🎉1🤩1🏆1🆒1
Объединяемые библиотеки (mergeable libraries) в Xcode 15: лучшее от динамических и статических либ
До введения объединяемых библиотек в WWDC этого года мы должны были решить, каким должен быть фреймворк — статическим или динамическим.
Выбор мог повлиять на время сборки приложения и производительность во время запуска.
Начиная с Xcode 15, нам не нужно будет принимать такое решение.
📺 Были анонсированы объединяемые библиотеки, сочетающие в себе лучшее из динамических и статических библиотек.
📖 В этой статье можно узнать, какие проблемы они решают и как настроить проект в Xcode для использования таких библиотек.
😃 iOS Dev
До введения объединяемых библиотек в WWDC этого года мы должны были решить, каким должен быть фреймворк — статическим или динамическим.
Выбор мог повлиять на время сборки приложения и производительность во время запуска.
Начиная с Xcode 15, нам не нужно будет принимать такое решение.
📺 Были анонсированы объединяемые библиотеки, сочетающие в себе лучшее из динамических и статических библиотек.
📖 В этой статье можно узнать, какие проблемы они решают и как настроить проект в Xcode для использования таких библиотек.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍5👏2❤1🤩1🏆1🤗1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание интерактивного виджета с использованием App Intents
📖 В этом несложном примере можно узнать, как создать виджет для увеличения глобального счетчика, используемого вместе с таргет-приложением.
📖 Больше про App Intents можно узнать в официальной документации (iOS 16+).
Кстати, если вам нужно использовать больше, чем один виджет, то в канале есть пост и про такую ситуацию.
😃 iOS Dev
📖 В этом несложном примере можно узнать, как создать виджет для увеличения глобального счетчика, используемого вместе с таргет-приложением.
📖 Больше про App Intents можно узнать в официальной документации (iOS 16+).
Кстати, если вам нужно использовать больше, чем один виджет, то в канале есть пост и про такую ситуацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥5❤2🏆1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Концепт приложения для visionOS в связке с Figma (обновления в реальном времени)
Ещё одна необычная идея от Alex Widua (вы только посмотрите на его прошлый прототип!).
Во время работы с
Удивительно, но работает очень даже неплохо🤩.
🛠 Тут можно посмотреть на реализацию анимации сетки при обнаружении фрейма.
😃 iOS Dev
Ещё одна необычная идея от Alex Widua (вы только посмотрите на его прошлый прототип!).
Во время работы с
visionOS
он придумал такую связку: плагин фигмы общается с приложением iOS через WebSockets
. Все фреймы Figma загружаются как изображения AR, которые может распознать ARKit. Удивительно, но работает очень даже неплохо🤩.
🛠 Тут можно посмотреть на реализацию анимации сетки при обнаружении фрейма.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4🏆2❤1👏1🤔1🎉1🤩1
Зарплаты мобильных разработчиков по данным Хабр Карьера
Появились результаты нового исследования, в котором есть распределение вакансий и по квалификации.
Самые популярные разработчики мобильных приложений — мидлы и сеньоры, доли вакансий для них одинаковые — по 45,2%.
Реже ищут лидов — доля 7,1%. Для джунов вакансий меньше всего: 2,5%.
💰По цифрам, которые оставили сами разработчики, можно сделать выводы, что джуны в среднем получают 110 000 ₽, а лиды — 430 000 ₽.
😃 iOS Dev
Появились результаты нового исследования, в котором есть распределение вакансий и по квалификации.
Самые популярные разработчики мобильных приложений — мидлы и сеньоры, доли вакансий для них одинаковые — по 45,2%.
Реже ищут лидов — доля 7,1%. Для джунов вакансий меньше всего: 2,5%.
💰По цифрам, которые оставили сами разработчики, можно сделать выводы, что джуны в среднем получают 110 000 ₽, а лиды — 430 000 ₽.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤣13🔥10🫡5❤3😐3😢2🆒2👏1🏆1
Swift OpenAPI Generator: генерация кода для клиента и сервера с помощью инструмента Apple
Проект ещё на стадии разработки, но, несмотря на то, что до сих пор нет даже версии 1.0, некоторые опенсорс-решения уже стопнули разработку своих репозиториев в пользу эпловского продукта.
📖 В этом материале Марко Эйдингер показывает пример использования для двух важных этапов: создания клиентской либы, а также её внедрения в приложение.
🛠 Сам репозиторий на github.
😃 iOS Dev
Swift OpenAPI Generator
от Apple — это плагин SwiftPM
, в который можно передать OpenAPI-док и сгенерить либо клиентский код для выполнения HTTP-запросов, либо код сервера для обработки этих вызовов.Проект ещё на стадии разработки, но, несмотря на то, что до сих пор нет даже версии 1.0, некоторые опенсорс-решения уже стопнули разработку своих репозиториев в пользу эпловского продукта.
📖 В этом материале Марко Эйдингер показывает пример использования для двух важных этапов: создания клиентской либы, а также её внедрения в приложение.
🛠 Сам репозиторий на github.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤5🔥4👏1🏆1🆒1
Мой опыт разработки пет-проектов
Возможно, вы читали пост, в котором я писал, что создаю приложения с 2011 года. За это время до стора добрались три десятка, из которых так или иначе до сих пор там примерно двадцать. Около половины из них на Objective-c, другая же часть на Swift, а виджеты/приложения для часов уже на SwiftUI. Ха-ха, а ещё у меня есть одно на Kotlin.
Хочу поделиться с вами своими мыслями про то, для чего это всё было (и будет).
🔘 Доведённый до конца проект это важно. На работе встречаются сложные задачи, требующие усидчивости, нескольких подходов, иногда даже пересмотра таски под другим углом.
🔘 Мои приложения — не основной источник дохода. Скорее рассматриваю их как способ узнать что-то новое, попробовать какие-то архитектуры, или, например, попытаться написать проект только c использованием фреймворка
🔘 Вопросы ревьюеров помогут вам аргументировать свою позицию и отстаивать свои решения. Хотя периодически с ними нужно будет соглашаться😎 .
🔘 Иногда что-то даже может выстрелить. Когда-то у меня был клиент для ВК, а сам ВК тогда выпилили за авторские права на музыку, и в течение нескольких дней случилось около 50 000 установок (для меня это много).
🔘 Чаще пользователи молчат, когда их всё устраивает. Но как только что-то пойдёт не так, будьте готовы получить десяток гневных отзывов (всё, как в обычной жизни). На работе ведь тоже иногда случаются сложности при обновлении, верно?
🔘 Ваши проекты — это один из лучших способов рассказать (и показать), что вы умеете. Но, конечно, далеко не единственный.
🔘 Вложенное время, силы и деньги не окупятся напрямую. Скорее всего, никогда, будьте готовы к этому. Фактически, вам может повезти занять узкую нишу либо ресурсы позволят подключить продвижение, тогда шансов будет больше.
🔘 Когда начинаю новый проект, то стараюсь фокусироваться на одной функции. Для этого можно представить, что это фича, которую вам нужно реализовать в спринте.
🔘 Я учусь. В том числе и создавать дизайн, даже участвовал в паре конкурсов скетча, но безрезультатно. Для чего? Когда вы пробуете сделать правильно и по гайдлайнам, вы сможете лучше понимать дизайнеров-коллег и их мысли, хотя это и не всегда получается.
🔘 Про аудиторию. У меня есть приложение, которое не пользуется особым успехом (про составление слов), но там есть один пользователь, который играет в него уже 5 лет, и периодически пишет отзывы. Это невероятно круто, когда ваше приложение кому-то интересно. К сравнению, нишевый знаток скачали около 40к человек за всё время, и периодически на разных турнирах я встречаю пользователей, это забавно 🙂
В целом было множество разных ситуаций, и пусть никаких ощутимых средств приложения мне так и не принесли, но сказать, что я жалею об этом, будет преувеличением.
Пробуйте. Но всегда старайтесь найти баланс между личным временем, творчеством и перфекционизмом.
😃 iOS Dev • 🐱 Доступ к алгоритмам
Возможно, вы читали пост, в котором я писал, что создаю приложения с 2011 года. За это время до стора добрались три десятка, из которых так или иначе до сих пор там примерно двадцать. Около половины из них на Objective-c, другая же часть на Swift, а виджеты/приложения для часов уже на SwiftUI. Ха-ха, а ещё у меня есть одно на Kotlin.
Хочу поделиться с вами своими мыслями про то, для чего это всё было (и будет).
🔘 Доведённый до конца проект это важно. На работе встречаются сложные задачи, требующие усидчивости, нескольких подходов, иногда даже пересмотра таски под другим углом.
🔘 Мои приложения — не основной источник дохода. Скорее рассматриваю их как способ узнать что-то новое, попробовать какие-то архитектуры, или, например, попытаться написать проект только c использованием фреймворка
Texture
.🔘 Вопросы ревьюеров помогут вам аргументировать свою позицию и отстаивать свои решения. Хотя периодически с ними нужно будет соглашаться
🔘 Иногда что-то даже может выстрелить. Когда-то у меня был клиент для ВК, а сам ВК тогда выпилили за авторские права на музыку, и в течение нескольких дней случилось около 50 000 установок (для меня это много).
🔘 Чаще пользователи молчат, когда их всё устраивает. Но как только что-то пойдёт не так, будьте готовы получить десяток гневных отзывов (всё, как в обычной жизни). На работе ведь тоже иногда случаются сложности при обновлении, верно?
🔘 Ваши проекты — это один из лучших способов рассказать (и показать), что вы умеете. Но, конечно, далеко не единственный.
🔘 Вложенное время, силы и деньги не окупятся напрямую. Скорее всего, никогда, будьте готовы к этому. Фактически, вам может повезти занять узкую нишу либо ресурсы позволят подключить продвижение, тогда шансов будет больше.
🔘 Когда начинаю новый проект, то стараюсь фокусироваться на одной функции. Для этого можно представить, что это фича, которую вам нужно реализовать в спринте.
🔘 Я учусь. В том числе и создавать дизайн, даже участвовал в паре конкурсов скетча, но безрезультатно. Для чего? Когда вы пробуете сделать правильно и по гайдлайнам, вы сможете лучше понимать дизайнеров-коллег и их мысли, хотя это и не всегда получается.
🔘 Про аудиторию. У меня есть приложение, которое не пользуется особым успехом (про составление слов), но там есть один пользователь, который играет в него уже 5 лет, и периодически пишет отзывы. Это невероятно круто, когда ваше приложение кому-то интересно. К сравнению, нишевый знаток скачали около 40к человек за всё время, и периодически на разных турнирах я встречаю пользователей, это забавно 🙂
В целом было множество разных ситуаций, и пусть никаких ощутимых средств приложения мне так и не принесли, но сказать, что я жалею об этом, будет преувеличением.
Пробуйте. Но всегда старайтесь найти баланс между личным временем, творчеством и перфекционизмом.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥49👍23🔥8❤5👏3🤔1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Погружаемся в Observation: введение, принципы и примеры использования
Новый фреймворк
Он представляет следующие возможности:
1️⃣ Маркировка типа как
2️⃣ Отслеживание изменений в экземпляре такого типа.
3️⃣ Наблюдение и использование этих изменений в другом месте, например, в пользовательском интерфейсе приложения.
Для более детального знакомства я выбрал две обширных статьи с примерами:
📖 Обзорный материал, для чего необходим этот фреймворк: как объявлять оъекты
📖 Гайд, как перенести ObservableObject в Observable.
😃 iOS Dev
Новый фреймворк
Observation
создали с целью уменьшить ненужные обновления во вьюхах SwiftUI, тем самым повышая производительность приложений.Он представляет следующие возможности:
1️⃣ Маркировка типа как
observable
(наблюдаемого).2️⃣ Отслеживание изменений в экземпляре такого типа.
3️⃣ Наблюдение и использование этих изменений в другом месте, например, в пользовательском интерфейсе приложения.
Для более детального знакомства я выбрал две обширных статьи с примерами:
📖 Обзорный материал, для чего необходим этот фреймворк: как объявлять оъекты
Observable
, разбор решаемых проблем с производительностью и примеры.📖 Гайд, как перенести ObservableObject в Observable.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4🔥4👏2🤯1🏆1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Информация — это кровь, метаболизм современного мира (Филипп К. Дик).
Вот уже больше года я активно веду этот канал. Ищу полезный контент, делюсь критическим взглядом и поднимаю важные вопросы необходимости базы, алгоритмов и их влияния на нашу с вами работу.
Фильтрация поступающей лавины новостей, нововведений и поиск ответов на сложные вопросы требуют времени.
Конечно, в 2023 году нам доступно огромное количество каналов, в которых можно черпать информацию. Крупнее, чем @iOSDev, с большими ресурсами или даже командой авторов, и это здорово!
Правда, важно не только расширять арсенал инструментов, но и смотреть на разработку в целом: не только писать код, но и вырабатывать навыки решения проблем.
Развивать технический ресурс — сложно по многим причинам (узкий контент и непростые темы, требующие погружения). И мне невероятно приятно, что вы здесь.
❤🔥Спасибо, что читаете этот канал.
@iOS Dev —
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉41👍8🔥4👏3❤1❤🔥1🤩1🏆1