iOS Dev
7.68K subscribers
994 photos
81 videos
1 file
1.15K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
Download Telegram
Создание виджетов для приложений iOS с помощью WidgetKit и SwiftUI

Начиная с iOS 14, Apple представила виджеты, которые позволяют пользователям отображать часть содержимого приложения на хоумскрине.

Виджеты отображают соответствующий неинтерактивный контент, позволяя пользователям быстро открыть приложение для получения дополнительных сведений.

Кроме этого, они поддерживают несколько размеров и создаются с использованием SwiftUI.

📖 В статье рассказывается о создании одного из таких виджетов.

Дополнение

Если вы откладываете перевод своего приложения на SwiftUI по тем или иным причинам (или вам просто лень перепиливать, например, свои проекты), то на мой взгляд, идея добавить виджет вполне неплохая.

От простого к сложному, почему бы и нет😉

@iOS Dev
Почему размер иконок в первых айфонах стал именно таким, каким мы его знаем?

Вопрос, о котором вы, возможно, никогда не задумывались — тревожил программистов из проекта Purple в далёком 2005 году. Под этим названием скрывалась сверхсекретная разработка в коридорах компании Apple, а её сотрудники работали над самыми разными приложениями: почтой, Safari, Заметками и Springboard.

Несмотря на то, что разработчики пытались решить собственные технические сложности, вскоре они начали задавать друг другу вопросы, насколько же большим должен быть объект на экране разрабатываемого устройства, чтобы по нему можно было попадать пальцем?

В команде был Скотт Форстал, которому всё давалось легко и своими гибкими пальцами он очень просто попадал по абсолютно любым целям на экране, но ведь было множество и других людей. Как, например, Грег Кристи, который в случае непопадания издавал невольный вздох в стиле истинного нью-йоркца.

Вскоре Скотт Херц нашёл ответ

Для этого он написал приложение и дал попробовать его своей команде.

После запуска в этом приложении появлялась крупная кнопка Start. А после нажатия на неё экран на мгновение становился пустым, а потом в каком-то случайном месте появлялся прямоугольник. И по нему нужно было попасть пальцем.

Когда вы нажали, в независимости от того, попали вы или нет, где-то на экране появлялся другой прямоугольник. Необязательно меньше, просто другой. И надо было попасть уже не этой фигуре, а затем ещё раз, и ещё раз, и ещё.

Примерно после двадцати нажатий игра заканчивалась.

Всё это время в логах ПО отслеживало нажатия, размер прямоугольников и их положение.

Поскольку в приложение было весело играть, то оно очень быстро разошлось среди сотрудников Purple и количество логов росло в геометрической прогрессии.

В течение следующих нескольких дней собиралась информация о «целях» и результатах попаданий.

Что получилось?

Результаты игры Скотта показали, что если разместить цель в квадрате со стороной пятьдесят семь пикселей, то она может быть где угодно — слева, справа, снизу или сверху. И каждый почти со 100% вероятностью сможет по ней попасть.

Эта игра и дала проекту Purple ответ, который они искали:

Ярлыки на первом iPhone являются квадратами со стороной в 57 пикселей.

В этом посте я показал только один из путей к появлению крутых вещей на основе книги "Творческий отбор. Как создавались лучшие продукты Apple во времена Стива Джобса" за авторством Кена Косиенды.

@iOS Dev — маякните как-нибудь с помощью 👏 или 👍, если такая инфа кажется интересной
Please open Telegram to view this post
VIEW IN TELEGRAM
Насколько необходимы основы программирования, та самая база?
📖 Бруно Роша, разработчик в Spotify, рассуждает в своей статье о необходимости алгоритмов, презирании этой темы в сообществе и проводит параллели с развитием музыканта.

Я постарался выделить основные моменты, и позволил себе добавить некоторые комментарии.

Проблема в том, что сообщество часто направляет ненависть к подобным собеседованиям не по назначению. Негатив вокруг этого формата интервью стал настолько велик, что теперь часто можно встретить людей, испытывающих неприязнь к самой теории, которая не имеет ничего общего с непонятными головомками в программировании.

Это мнение стало настолько популярным, что теперь практически невозможно упомянуть концепцию программирования на абстрактном уровне без того, чтобы кто-то немедленно не начал холивар о практике проведения интервью. А это вредит в том числе и индивидуальной карьере инженеров, которым говорят держаться подальше от этих знаний по причинам, не поддающимся логике.

Поднимаются важные вопросы

🔴 Теория не отражает того, что человек будет делать на самом деле в своей работе.

🔴 Знание теории не является показателем мастерства человека в данной практической роли.

🔴 Теория вообще бессмысленна. Зачем разработчику iOS знать, что такое граф?

Всё это создает у людей впечатление, что основы бесполезны, в то время как на самом деле они используют их постоянно!

Я не могу передать, сколько раз я слышал, как разработчик iOS говорил: "Я могу с уверенностью сказать, что никогда в своей работе мне не приходилось использовать граф", а затем радостно рассказывал о чем-то интересном, с чем они работали, используя иерархии UIView. Это одно и то же!

Объекты, которые могут соединяться друг с другом с целью создания единой связной карты элементов, - это буквальное определение графа, поэтому они не только знают, что такое граф, но и используют его с самого первого дня работы в качестве разработчика!

🟢 Графы/деревья: UIView.

🟢 Связные списки: UIResponder.

🟢 Хеш-таблицы: Dictionary<K,V> и протокол Hashable.

🟢 Побитовые операции: OptionSet.

Примечание: автор прав, говоря о том, что даже не зная формальных определений, разработчики с самого начала карьеры (или даже прохождения каких-то курсов), уже получают необходимые знания, пусть и не зная нужных терминов.

Так действительно ли нужно всё это знать. Попробуем провести параллель с профессиональным музыкантом?

Для этого можно ответить самому себе на следующие вопросы:

🔘 Хочу ли я изучать это как хобби и никогда не выходить за рамки игры на диване для развлечения?

🔘 Хочу ли я играть в группе и зарекомендовать себя как музыкальный исполнитель?

🔘 Стремлюсь ли я выйти за рамки простого звания «музыкальный артист», живя и дыша классической музыкой, становясь неотъемлемой частью Венского филармонического оркестра, путешествуя по миру и войдя в историю как легенда, которая буквально сформировала концепцию самой музыки?

Так почему же ведущие компании делают то, что делают?

Для такой компании, как Google, неинтересно нанимать кого-то, кто посвятил свою жизнь изучению всего, что касается UIKit в iOS — их проблема не в том, какие API UIKit использовать, а в том, что API, которые им нужны, не существуют вообще.

Эти проблемы решаются благодаря пониманию computer science и способности создавать новые и эффективные решения. Ваше понимание программирования как концепции доказывает, что вы тот самый тип программиста, который им нужен.

В сочетании с обычными заданиями альтернативные (как, например, код-ревью) могут дать вам действительно хорошее представление о практических знаниях кандидата, поскольку они имеют отношение к должности и задачам, которые нужно будет решать.

📖 Про сложность алгоритмов можно прочитать здесь.
📖 Про подход в Neflix и Tiktok.

@iOS Dev
CreateML для iOS: создание настраиваемого фильтра изображений с использованием Style Transfer

Фреймворки машинного обучения Apple с годами становятся все более мощными.

Style Transfer или Neural Style Transfer — одна из техник, которую предоставляют фреймворки.

С помощью переноса стиля (Style Transfer) вы сможете превращать одно изображение в другое, стилизуя его под заданное.

📖 В этом руководстве вы узнаете, как использовать ML-фреймворки Apple для достижения этой цели прямо на вашем iOS-устройстве!

Машинное обучение (ML) в iOS и macOS опирается на два основных фреймворка Apple - CreateML и CoreML.

ℹ️ CreateML позволяет создавать и обучать ML-модели, а CoreML — запускать их.

Изначально CreateML был доступен только для macOS для создания моделей. Затем их можно было использовать в приложениях macOS, iOS или iPadOS.

В 2021 году Apple сделала этот фреймворк доступным для iOS 15 и iPadOS 15. Теперь фреймворк CreateML позволяет обучать и создавать модели на устройстве.

Прочитав статью, вы получите ответы на следующие вопросы:

Как создать ML-модель на устройстве.

Как использовать модель для создания стилизованного изображения.

Основные понятия в обучении и прогнозировании ML.

@iOS Dev
Что нового в Swift 5.7?
Вспоминаем, резюмируем, ждём.

📱 Выход нового айфона уже совсем скоро, а вместе с ним и паблик-релиз новой оси. В новом Xcode версия Swift по дефолту будет 5.7, поэтому будет полезно вспомнить (или узнать), что теперь можно использовать.

В нашем канале я старался оперативно рассказывать о всех изменениях в формате кратких постов с примерами:

Новый синтаксис в Swift 5.7 для optional unwrapping.

 Упрощаем написание и понимание кода в Swift 5.7 использованием some.

 Улучшение работы с closures в Swift 5.7.

 Новое API для взаимодействия со временем.

📖 В этой статье Пола Хадсона новшества перечисляются в разумном порядке с практическими объяснениями.

🛠 Также с ними можно познакомиться в формате Xcode Playground.

@iOS Dev
5 сложных алгоритмов, упрощенных с помощью функций высшего порядка в Swift

Как разработчику, нам очень часто приходится иметь дело со сложными алгоритмами, на разработку которых уходят часы или даже дни.

Благодаря функциям высшего порядка Swift, таким как map, reduce, filter и т. д., некоторые из этих сложных алгоритмов теперь можно легко решить c помощью нескольких строк кода.

📖 В этой статье автор рассказывает о пяти алгоритмах, реализацию которых можно упростить благодаря функциям высшего порядка в Swift.

@iOS Dev
Swift 30 Projects — подборка опенсорсных проектов на самые разные темы
Сделано разработчиками для разработчиков

🛠 Этот репозиторий содержит проекты, демонстрирующие следующие примеры:

🔘 Простые компоненты UIKit.
🔘 UIScrollView, UITableView, UICollectionView.
🔘 CAAnimations и UIView Animations.
🔘 Локальные уведомления.
🔘 Фреймворки MapKit, Contact и Core ML.
🔘 Core Data, Today Extension и 3D touch.
🔘 Популярные фреймворки с открытым исходным кодом.
🔘 Паттерны проектирования.
🔘 XCTest.

Для каждого проекта есть свой README и скриншоты, все подробности можно найти там.

#opensource
@iOS Dev
Презентация Apple. 20:00 по мск. @iOS Dev
Поехали!
Рассказывают про истории, когда Apple Watch помогли в тяжелых ситуациях.

Разные люди, разные обстоятельства, разные части света.

Apple Watch + Спасение = ❤️

@iOS Dev
Apple Watch Series 8

@iOS Dev
Появится Crash Detection

Автоматически уведомит экстренные службы в случае столкновения на авто.

Важное и полезное нововведение!

Обучили на 1 миллионе часов реального вождения и обнаружения аварий.

Юзают кучу данных с гироскопа и не только, что позволит наиболее точно определить степень повреждений.

@iOS Dev
Международный роуминг в часах

Доступен на Watch OS 9.

@iOS Dev
Все фичи новых часов в одной картинке

Доступны по следующим ценам в США:
GPS $399
GPS + Cellular $499

@iOS Dev
ААААААА!!!

Apple. Watch. Ultra.
Что-то на богатом?

@iOS Dev
Три! Три микрофона в часах!

Кнопочка специально для тех, кто использует перчатки.

36 часов и 60 на максимуме время жизни!

Нужно подзаряжать реже, чем раз в день, что это, если не прорыв?

А ещё самый точный GPS на диком западе среди всех часов.

@iOS Dev
Добавили сирену в часы!

Сработает на дистанции в 180 метров, издавая уникальный звук в случае опасности или необходимости срочной помощи.

@iOS Dev
Apple Watch Ultra

Стартовая цена — $799.

Выглядит дороговато, Тим, ты что наделал?

@iOS Dev
Новые AirPods Pro

Более крутая начинка, новый чип.

Магия будет происходить с помощью Spatial Audio.

Можно будет настроить персональный профиль, специально для того, кто слушает. А как было раньше?!

А вот 2x-шумоподавление звучит очень достойно!

Adaptive Transparency позволит более качественно работать с окружением, включая, например, дорожные работы.

6 часов без подзарядки и 30 суммарно.

😳А ещё новый сенсор на наушниках, можно будет регулировать звук?!

От $249 - ради сенсора можно и подумать!

@iOS Dev