iOS & ISS | Dev Blog – Telegram
iOS & ISS | Dev Blog
252 subscribers
81 photos
34 videos
1 file
68 links
Блог iOS команды компании ISS.
Наша работа:
- приложение «Московский транспорт»
- приложение «ДОБРО.РФ»
- приложение «Онлайнинспекция.рф»
- приложение «Паркоматика»
- приложенеие «‎Dhamer | ضامر»

Для связи: @Savva_Shuliatev
Download Telegram
Передаем слово HR-у Даше! Часть 2

- Если у тебя есть ссылки на реализованные проекты, обязательно оставляй (это так же важно как пример в GitHub).

- Оставляй свое фото (может с котом/ковром или алоэ) это поможет заметить тебя любому работодателю нежели 1000 кандидатов как и ты с превью "ios разработчик".

- Если зарплата для тебя вопрос № 1, то стоит указать её, если же ты достаточно гибкий в этом вопросе, то лучше не заполнять это поле.

P.S. Шутки в резюме всегда приветствуются (но важно найти для них место, например в том же разделе "о себе", особенно если они реально о себе 😅).

#HR
🔥101👍1🤩1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
Бабл-бар. Часть 2

При разработке транспортного приложения нам тоже пришлось столкнутся с бабл-баром.

Стандартная реализация бабл-бара:

- Скрытие нативного tabBar в UITabBarController.
- Добавление кастомного бара через view.addSubview(bubbleBar).
- Связка констрейнами.
- Реализация общения между bubbleBar и UITabBarController.

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

И если в приложении MAPS.ME анимация при повороте белого бабл-бара на белой карте выглядит еще терпимо (смотри первый пост по #БаблБар).
Tо для нашего дизайна... «размазанная черная колбаса», не иначе, как 💩.

Что ж, тогда мы начали брейншторм...

#БаблБар
👍9😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Бабл-бар. Часть 3. Финал

Задача была ясна: убрать анимацию при поворотах, чтобы бабл-бар не «размазывало» по экрану.

Что мы только не перепробовали:

- Различные комбинации работы с версткой: от autolayout-a до фреймов, с попыткой обновления без анимации в отдельных комплишенах, пробовали отключать анимацию внутри с помощью layer.removeAllAnimations.
С фреймами анимация становилась менее размазанной, и все же, это было не то...

- Различные комбинации иерархии ViewController-ов с переопределенным supportedInterfaceOrientations: UIInterfaceOrientationMask. И что бабл-бал чайлд над табБаром, и что fullScreen, и что чайлд / fullScreen над RootViewController.
Либо эффекта не было, либо приложение оставалось всегда в одной ориентации, что нас не устраивало..

И все же, мы нашли решение! Теперь в нашем приложении два пользовательский UIWindow, второй нужен только для бабл-бара.

Нюансов в реализации так много, что не хватит ни одного поста, поэтому ждите статью на Хабре.
Подписывайтесь, чтобы не пропустить!
🔥23👍5👏1🍌1
Статья от ребят про улучшение мобильного сайта Альфа-Банка.
Выводы вполне подходят и для мобильных приложений.

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

- Отказаться от множества баннеров, которые ведут на продуктовые страницы, и заменить их на иконки с текстом.
Тут без комментариев, в некоторые банковские приложения страшно заходить... На странице со счетами, где я бы ожидал увидеть, как это не странно, свои счета, вместо этого 70% экрана занимают "Рекомедации", предложения с кешбэком, предложения с подписками и прочий шум и шлак.

P.S.
На экране "Мои счета" я хочу видеть МОИ СЧЕТА! Да-да, МТС Банк, СЧЕТА!
Тинек в этом вплане впереди всех, ИМХО.

Ссылки: статья на VC «3 дизайн-решения, которые улучшили показатели мобильного сайта Альфа-Банка в несколько раз»
👍9🔥31😁1🤩1
Моменты неотзывчивости iOS-приложений: как найти и исправить

Небольшой и интересный доклад о неотзычивости, Hang Rate, Xcode Organiser, MetricKit.

У нас тут не Яндекс!

Когда-нибудь дойдем до performance тестов и сбора метрик отзычивости.

Ссылка
#ЯндексСубботник
👍5😎4🍌2😁1
Добиваем Я.Субботник докладом про нюансы разработки для Apple Vision Pro

Кинопоиск уже на Vision Pro, реклама, как для продукта - топ!
Однако, опять же, это импорт iOS-ного приложения.

У нас тут не Яндекс!

Лет через 5-7 полноценная разработка под Vision может и будет актуальна, но там и другие доклады смотреть будем.

P.S.
Пара бесплатных идей для стартапа:
- Vision нарды.
- Интерфейс "Терминатора" из первого фильма.
- AI раздевание людей вокруг.

Ссылка
#ЯндексСубботник
👍7😁2🍌2🎉1
- А вы точно хорошие разработчики?
- У нас вся разработка на паттернах проектирования!

P.S.
Не баян, а классика!
😁7🔥51💩1
WWDC нужно смотреть в оригинале.

Для этого начинаем учить английский прямо сейчас c Trannoscriptum!
Попробуй бесплатно trannoscriptum 🆓🆒🆙
🔥13
Только ленивый не рассказал про обновление Swift 5.10. Теперь мой черёд

- Закрыты все известные дыры в безопасности статической гонки данных за счет полной строгой проверки параллелизма.
Правда, пока только с флагом -strict-concurrency=complete.

Пример:
@MainActor
class MyModel {
init() {
MainActor.assertIsolated()
}

static let shared = MyModel()
}

func useShared() async {
let model = MyModel.shared
}

await useShared()


warning: expression is 'async' but is not marked with 'await'
let model = MyModel.shared
^~~~~~~~~~~~~~
await


- Добавлен новый неизолированный (небезопасный) модификатор nonisolated(unsafe) для аннотации глобальных или статических переменных для подавления нарушений изоляции данных при ручной синхронизации.

- Исправлено множество ошибок в проверке изоляции субъектов @MainActor и Sendable, чтобы усилить гарантии полной проверки параллелизма.

Мои мысли:
Swift становится все проще для разработки, и все сложнее для понимания.
Но я рад, что Apple стандартизирует разные области нашего ремесла, и теперь ответ для моего вопроса с собеседования "Как вы видите data-race safety" становится более четким.

Ссылка
🔥7👍4🍓1
20-летний сеньер не получает в офере 500к в месяц и спрашивает, почему?

HR: “У нас в компании возрастная политика.”

Так же кандидат после:
😁15
Веб-распространение iOS приложений (Только для ЕС) Ч1

В весеннем обновлении появится функция авторизованным разработчикам распространять свои приложения iOS среди пользователей из ЕС непосредственно с веб-сайта, принадлежащего разработчику.

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

Ссылка
👍7👀3
Веб-распространение iOS приложений. Ч2

Подробности:

- Приложение может быть установлено только с домена веб-сайта, который разработчик зарегистрировал в App Store Connect.

- Используя App Store Connect, разработчики могут легко загружать подписанные двоичные ресурсы и размещать их на своем веб-сайте для распространения.

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

- Apple будет авторизовать разработчиков после соблюдения определенных критериев и соблюдения постоянных требований.

Ссылка
👍52
Веб-распространение iOS приложений. Ч3

Чтобы иметь право на распространение через Интернет, вы должны:

- Быть зарегистрированным в программе Apple Developer Program в качестве организации, зарегистрированной в ЕС (или иметь дочернее юридическое лицо, зарегистрированное в ЕС, которое указано в App Store Connect).

- Быть участником программы Apple Developer Program с хорошей репутацией в течение двух или более лет подряд и иметь приложение, которое за предыдущий календарный год было установлено более одного миллиона первых ежегодных установок на iOS в ЕС.

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

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

- Опубликовать прозрачные политики сбора данных и предложите пользователям контролировать сбор и использование их данных.

- Соблюдать применимые законы юрисдикций, в которых вы работаете (например, Закон о цифровых услугах, Общие положения о защите данных и законы о защите потребителей).

- Нести ответственность за обработку правительственных и других запросов на удаление списков приложений.

Ссылка
👍4🔥4
Веб-распространение iOS приложений. Ч4

Платежи, сборы и налоги

- Разработчики будут платить CTF в размере 0,50 евро за каждую первую ежегодную установку более одного миллиона приложений за последние 12 месяцев.

- Некоммерческие организации, аккредитованные образовательные учреждения или государственные учреждения, базирующиеся в ЕС, которым было одобрено освобождение от уплаты сборов, освобождаются от ежегодного членского взноса в Программу разработчиков Apple и сбора за распространение.

Ссылка
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Веб-распространение iOS приложений. Ч5

Мои мысли: для нас мимо. Всем хорошего дня!
👍6😁3👀2
Media is too big
VIEW IN TELEGRAM
RollingTimeIntervalText

Первый самостоятельно написанный крутой UI элемент. (Смотри на таймер со временем)

SwiftUI не перестает удивлять своей простотой относительно количества кода и его понимания. И своей сложностью, ибо как до этого всего додуматься, порой, не понимаю..

Код в следующем посте ⬇️
🔥9👍6
Media is too big
VIEW IN TELEGRAM
Копируем Тинькофф банк на SwiftUI

На днях закончил с флоу «Придумайте код» и «Повторите код».

- 250 строк кода.

- Многие модификаторы, методы и прочие штуки доступны на поздних iOS версиях. Из-за чего приходиться чаще выкручиваться.

- Кто-бы что не говорил, TCA - топ. 200 строк тестируемой бизнес логики, так еще дополнив паттерном "Стратегия". Мммм...

- Навигация в SwiftUI - 🙈. И проблема не в том, что навигацию сложно вынести в бизнес-роутер-слой. С либам все выносится. Для меня проблема в том, что она какая-то ненадежная что-ли. Будто шаг влево, шаг вправо, и все, навигация поплывет, экраны сбросятся, логика сломается. Вот мы столкнулись с таким багом, и решение - сплошные костыли 🤡.
В общем, пока в раздумьях на счет правильного подхода к навигации. Порой хочется плюнуть, и писать навигацию на UIKit.
🔥13
Какой-то зебра-мод?
Как выключить?
🦓
💊9
С нынешними ценами могу сказать лишь одно:

Берегите матрицу с молоду.
😁82💯21