В новом дайджесте мы справляемся с раскладушками и пишем приложения на ассемблере, практикуем функциональный Swift и делаем бионическое зрение, разрабатываем на Flutter и улучшаем UX, исследуем лучшие игры и приложения. Добро пожаловать!
Рубрика «swift» - 20
Дайджест интересных материалов для мобильного разработчика #288 (24 февраля — 3 марта)
2019-03-03 в 12:23, admin, рубрики: flutter, kotlin, swift, ux дизайн, Блог компании Everyday Tools, искусственный интеллект, маркетинг мобильных приложений, навигация, разработка игр, разработка мобильных приложений, Разработка под android, разработка под iOSНемного практики функционального программирования в Swift для начинающих
2019-02-24 в 14:59, admin, рубрики: compactMap, filter, flatmap, map, reduce, swift, swift development, swift разработка, разработка мобильных приложений, разработка под iOS, функциональное программирование
Я хотела бы представить концепцию Функционального Программирования новичкам самым простейшим образом, выделив некоторые его преимущества из множества остальных, которые реально позволят сделать код более читаемым и выразительным. Я подобрала для вас интересные демонстрационные примеры, которые находятся на Playground в Github.
Функциональное Программирование: Определение
Прежде всего, Функциональное Программирование — это не язык или синтаксис, а скорее всего — способ решения проблем путем разбиения сложных процессов на более простые и последующей их композиции. Как следует из названия "Функциональное программирование", единицей композиции для данного подхода является функция; и цель такой функции — избежать изменения состояния или значений за пределами своей области действия (scope).
В Мире Swift для этого есть все условия, ибо функции здесь являются такими же полноправными участниками процесса программирования, как и объекты, а проблема изменяемости (mutation) решается на уровне концепции value ТИПОВ (структур struct и перечислений enum), которые помогают управлять изменяемостью (mutation) и четко сообщают о том, как и когда это может произойти.
Однако Swift не является в полном смысле языком Функционального программирования, он не принуждает вас к Функциональному программированию, хотя и признает преимущества Функциональных подходов и находит способы встраивания их.
В этой статье мы сфокусируемся на использовании встроенных в Swift (то есть «из коробки») элементов Функционального программирования и понимании того, как можно их комфортно использовать в вашем приложении.
Читать полностью »
Дайджест интересных материалов для мобильного разработчика #287 (18 февраля — 24 февраля)
2019-02-24 в 13:39, admin, рубрики: andorid things, apple, AR, ARCore, Google, kotlin, swift, ux дизайн, Блог компании Everyday Tools, интерфейсы, искусственный интеллект, маркетинг мобильных приложений, разработка игр, разработка мобильных приложений, Разработка под android, разработка под iOS, тестированиеНа этой неделе мы обсуждали известность российских команд мобильной разработки, создание звука, переписывание кода, проблемы игроков и самые популярные приложения, сломавшиеся кроссовки и, конечно, состояние экономики приложений. Добро пожаловать в наш новый дайджест интересных материалов!
10 навыков и знаний необходимых начинающему iOS разработчику
2019-02-23 в 8:40, admin, рубрики: ios development, swift, разработка мобильных приложений, разработка под iOS
Профессия iOS разработчик сейчас довольно востребована, хорошо оплачивается и, возможно даже, модная, а потому привлекает много людей.
Ко мне и коллегам на собеседования приходит много кандидатов на открытые у нас вакансии, и я отчетливо вижу у многих новичков отсутствие базовых знаний или просто неуверенное владение ими. Хотя в интернете и много статей, книг и курсов (платных и бесплатных), из которых можно получить необходимые знания, не всегда просто понять, на изучении каких тем стоит сконцентрироваться.
В этой заметке я поделюсь информацией про то, какие навыки и знания я считаю важными для начинающего iOS разработчика, попробую объяснить зачем они нужны и дам ссылки на материалы для их изучения.
Читать полностью »
Implementing UI in iOS: Better, faster, and it scales
2019-02-19 в 15:28, admin, рубрики: design, iOS, ios development, software engineering, swift, UI, Блог компании Badoo, дизайн мобильных приложений, разработка мобильных приложений, разработка под iOS
A few months ago I came across a very interesting documentary series on Netflix called Abstract, they basically explore the output of professional designers from different sectors like architecture, graphic design, fashion, … in their workplaces.
It was easy to spot some similarities in the work of designers from other fields with that of an iOS developer who implements user interfaces. For example, when a designer is creating something that is big enough to be broken down into smaller parts, using a strategy like ‘Divide and Conquer’ is key to being able to focus on smaller parts that will be assembled at later stages in the process.
Breaking down a whole design into smaller subunits allows us to think about each problem in isolation, removing any dependencies between the components. But the full picture also needs to be present throughout the whole process, otherwise there can be problems when the time comes to fit everything back together.
On the other hand, while watching Abstract I noticed that in the design process for objects like a shoes, banners or buildings the final design remains fixed for the lifetime of the product. The design of a Nike shoe isn’t going to change after it is released and there aren’t going to be any updates once it’s on the shelf in the shop. Sometimes a design remains unchanged even 20 years later, and the product is still sound.
Читать полностью »
Реализуем UI в iOS: улучшаем, ускоряем, масштабируем
2019-02-19 в 13:02, admin, рубрики: ios development, swift, UI, Блог компании Badoo, дизайн мобильных приложений, дизайн система, мобильная разработка, разработка мобильных приложений, разработка под iOS
Привет! Меня зовут Азат Зулькарняев, я занимаюсь разработкой iOS-приложений в компании Badoo. При создании мобильных приложений большая часть времени уходит на разработку UI, и оптимизация этого процесса всегда является актуальной темой в среде разработчиков. Мой коллега Алексис Сантос написал статью о том, с какими проблемами мы столкнулись и как двигались в сторону их разрешения при работе над этой задачей. Я решил поделиться с вами переводом. Также рекомендую посмотреть запись недавнего доклада Игоря Савельева на Mobius 2018.
Несколько месяцев назад я наткнулся на очень интересный документальный сериал от Netflix — «Абстракция: Искусство дизайна». В нём подробно рассматривается работа дизайнеров из разных сфер: архитектура, графический дизайн, мода и т. д. Нетрудно заметить определённое сходство их работы с деятельностью iOS-разработчиков, занимающихся реализацией пользовательских интерфейсов. В частности, ведя работу над крупным проектом, дизайнеры стараются разбить её на множество мелких задач по принципу «разделяй и властвуй» и получают возможность собрать все элементы воедино на более позднем этапе.
Читать полностью »
Processing of Unrecoverable Errors in Swift. The Research Approach
2019-02-19 в 12:44, admin, рубрики: swift, xcodePreface: it's all about the research approach
This article is an example of how we can do a research of the Swift Standard Library functions behavior building our knowledge not only on the Library documentation but also on its source code.
Unrecoverable Errors
All events which programmers call "errors" can be separated into two types.
- Events caused by external factors. Like network connection failure.
- Events caused by programmer's mistake. Like reaching a switch operator case which should be unreachable.
Устройство компилятора Swift. Часть 4
2019-02-15 в 10:22, admin, рубрики: compiler, e-legion, LLVM, swift, ассемблер, Блог компании e-Legion, Компиляторы, Программирование, Софт, язык программирования
Это последняя часть моего обзора компилятора Swift. Я покажу, как можно осуществить генерацию LLVM IR из AST и что выдаёт настоящий фронтенд. Если вы не читали предыдущие части, то переходите по ссылкам:
Написание Unit тестов на Swift для проверки асинхронных задач
2019-02-10 в 20:47, admin, рубрики: swift, swift 4, unit tests, xcodeСегодня хочу вам быстренько рассказать как тестировать асинхронный код.
Представьте ситуацию, что вам надо загрузить данные из интернета и проверить все ли работает нормально, либо еще какую-нибудь задачу, которая выполняется асинхронно. И как же его протестировать? Что если попробовать так же как и обычный синхронный код?!
func testAscynFunction() {
someAsyncFunction()
}
func someAsyncFunction() {
let bg = DispatchQueue.global(qos: .background)
bg.asyncAfter(deadline: .now() + 5) {
XCTAssert(false, "Something went wrong")
}
}
Такой тест вернет нам положительный результат, так как метод не будет ждать всех наших асинхронных задач.
Для решения такой проблемы в тестах есть одна замечательная вещь: Читать полностью »
Анимации в iOS-приложениях, рождённые на сервере
2019-02-07 в 15:01, admin, рубрики: animation, iOS, lottie, swift, анимации, Блог компании Badoo, дизайн мобильных приложений, разработка, разработка мобильных приложений, разработка под iOS, сервер
Полгода назад мы представили одну из самых впечатляющих функций Badoo — прямые трансляции. Среди прочего она позволяет пользователям выразить благодарность любимым стримерам в виде подарков. Мы хотели сделать эти подарки максимально яркими и привлекательными, поэтому решили их оживить — другими словами, анимировать. А чтобы было ещё интереснее, мы планировали обновлять подарки и анимации каждые несколько недель.
iOS-инженеры наверняка догадались, о каких объёмах работы идёт речь: чтобы удалять старые и добавлять новые анимации, необходимо совершить множество действий с клиентской стороны. Для этого в каждом релизе должны быть задействованы Android- и iOS-команды, а вкупе со временем, необходимым на одобрение обновления в App Store, это означает, что запуск каждого релиза с обновлёнными анимациями может занять несколько дней. Однако нам удалось решить эту проблему, и сейчас я расскажу как.
Архитектура решения
К тому времени мы уже умели экспортировать анимации Adobe After Effects (далее — AAE) в понятный нашему iOS-приложению формат при помощи библиотеки Lottie. В этот раз мы пошли чуть дальше: решили хранить все актуальные анимации на сервере и скачивать их по мере необходимости.
Читать полностью »


