Рубрика «iOS разработка»

SwiftUI для прошлого конкурсного задания Telegram Charts (март 2019 года): все просто - 1

Сразу начну с замечания о том, что приложение, о котором пойдет речь в этой статье, требует Xcode 11 и MacOS Catalina , если вы хотите использовать Live Previews, и Mojave, если будете пользоваться симулятором. Код приложения находится на Github.

В этом году на WWDC 2019, Apple анонсировала SwiftUI, новый декларативный способ построения пользовательского интерфейса (UI) на всех устройствах Apple. Это практически полное отступление от привычного нам UIKit, и я — как и многие другие разработчики — очень хотела посмотреть этот новый инструмент в действии.

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

Все вокруг говорят про голосовых помощников, Алису, Google Assistant, что они умеют, чего не умеют… А мы взяли и написали фреймворк для создания мобильных голосовых ассистентов. Да еще и с открытым исходным кодом! Пока мы это сделали только для Android, и теперь ищем крутого iOS-разработчика, кто с легкостью портирует Kotlin код на Swift.
Под катом рассказываем, зачем мы вообще это делаем, что у нас получилось и кого именно мы ищем в команду Aimybox.
Aimybox в поиске: фреймворку для создания голосовых ассистентов нужен мастер iOS - 1

Читать полностью »

Хотелось бы поделиться своей историей начинания в области iOs разработки в свои полные 50 лет.

Как-то по жизни я всегда следовал принципу, что в жизни нужно попробовать все. Наверное, это пошло еще с детства. Тогда еще не было даже такого понятия, как «гаджет» и мы с друзьями после школы записывались на новые секции и новые кружки, короче, искали чем себя занять. Были опробованы все виды единоборств, настольный теннис, волейбол… Игра на гитаре, год репетиций и концертов в оркестре народных инструментов, потом игра в ВИА — короче, весь мир у твоих ног ). Потом институт по специальности «Радиоинженер» и после армии, с 1989 года, паяние-ваяние «ZX-Spectrum» (думаю, есть еще люди, которые помнят данные девайсы), сборка и ремонт телевизоров, потом, с начала 2000-х — ремонт мобильных телефонов и других гаджетов.
Читать полностью »

Xamarin.Forms — удобное использование иконочных шрифтов в приложении - 1

Постановка задачи

Для отображения иконок в приложении Xamarin.Forms можно использовать изображения в различных форматах, например png, svg или шрифты ttf. Чаще всего для добавления стандартных иконок удобен шрифт с иконками, например google material icons. Шрифт с иконками имеет размер около 200КБ и удобство использования здесь обычно важнее экономии на размере приложения. Иконки будут хорошо смотреться при любом разрешении экрана и будут чёрно-белыми.

Для использования иконок есть готовые nuget-пакеты. Я долгое время использовал iconize (nuget — www.nuget.org/packages/Xam.Plugin.Iconize; git — github.com/jsmarcus/Iconize). Он позволяет подключать более десяти шрифтов, добавляет новые контролы, такие как IconButton, IconImage, IconLabel и т.п. Но тут есть обычные аргументы против готовых библиотек: лишний функционал, лишний размер файлов, не полностью устраивает поведение, баги и т.п. Поэтому в определённый момент решил отказаться от готовой библиотеки и заменить ее на простейший велосипед из пары классов + шрифт.
Читать полностью »

Всем привет. Сегодня хотим поделиться переводом подготовленным в преддверии запуска курса «iOS Разработчик. Продвинутый курс». Поехали!

Оборачиваем последовательности в Swift - 1

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

Читать полностью »

Вводные слова

Как бы ни ругали Apple за закрытость платформы и самой экосистемы, некоторые их решения являются исключением. На рынке много стриминговых сервисов, но предоставляющих полноценный SDK для стриминга в сторонних продуктах крайне мало, для российского рынка список официально доступных SDK ограничивается Deezer и Apple Music. Конечно, когда на наш рынок придёт Spotify, на один доступный SDK станет больше, но пока есть два игрока и только один из них имеет широкую пользовательскую базу.

Так получилось, что я имел опыт работы с Deezer SDK под Android и прямо сейчас активно работаю с SDK Apple Music (MusicKit) под iOS. И главное отличие от опыта с Deezer состоит в том, что MusicKit — это верхушка айсберга, она же публично доступный API. В отличие от Deezer, где повторить большую часть функциональности официального приложения — это просто длительный процесс, повторить функциональность даже веб-страницы Apple Music, используя только публичный API, невозможно. Даже если Apple использует MusicKit в своих решениях, то кроме него она использует ещё массу недокументированных API запросов и приватных API, которые простым смертным использовать запрещено.

В статье я расскажу про работу с MusicKit с точки зрения разработчика в контексте реализации достаточно "простых задач": поискать в каталоге, показать картинки в результатах поиска, получить песни, рекомендации и даже проиграть какую-то музыку. Забегая вперёд скажу, что многое из рассказанного будет справедливо и для работы с Apple Music в Android и Javascript.

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

Читать полностью »

Чего ждать, если хочешь стать iOS-разработчиком - 1

Со стороны iOS разработка может казаться закрытым клубом. Для работы обязательно нужен компьютер от Apple, экосистему пристально контролирует одна компания. Изнутри тоже иногда слышны противоречия — кто-то говорит, что язык Objective-C старый и неповоротливый, а кто-то, что новый язык Swift слишком сырой.

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

В этот раз о своем опыте нам рассказали Марат Нургалиев и Борис Павлов — как они учились профессии, как проходили первые собеседования, почему получали отказы. А экспертом выступил Андрей Антропов — декан факультета iOS-разработки в GeekBrains.
Читать полностью »

На седьмой встрече iOS-разработчиков в нашем офисе обсуждали самописный remote cache для iOS, feature toggles, как использовать proxy-объекты в разработке тёмных тем для приложений, и рассмотрели разные варианты развития карьеры разработчика (фриланс, работа на корпорацию, работа на свой проект). Этот пост — отчёт о том, как прошёл митап. Внутри — видеозаписи, презентации спикеров, ссылки на фотоотчёт и отзывы участников встречи.

Remote cache для iOS, feature toggles, тёмные темы и карьера разработчика — отчёт с Avito iOS Meetup #7 - 1

Читать полностью »

Создание анимаций это здорово. Они являются важной частью iOS Human Interface Guidelines. Анимации помогают привлечь внимание пользователя к важным вещам или попросту делают приложение не таким скучным.

Существует несколько способов реализовать анимацию в iOS. Вероятно, самым популярным способом является использование UIView.animate(withDuration: animations:). Вы можете анимировать слой изображения с помощью CABasicAnimation. Кроме того, UIKit позволяет настроить кастомную анимацию для отображения контроллера с помощью UIViewControllerTransitioningDelegate.

В этой статье я хочу обсудить еще один захватывающий способ анимирования вьюшек — UIViewPropertyAnimator. Данный класс предоставляет гораздо больше функций управления, чем его предшественник UIView.animate. С его помощью можно создавать временные, интерактивные и прерываемые анимации. Кроме того, имеется возможность быстрой смены аниматора.
Читать полностью »

image

Привет! На связи Денис из Apphud – сервиса по аналитике возобновляемых подписок для iOS-приложений.

Как вы знаете, на WWDC 2019 Apple анонсировали свой новый декларативный фреймворк SwiftUI. В этой статье я попробую рассказать как с помощью SwiftUI сделать экраны оплаты и реализовать функционал авто-возобновляемых подписок.Читать полностью »