Как стать автором
Обновить
0
0
Александр @alexdjr

Пользователь

Отправить сообщение

Общее представление об архитектуре Clean Swift

Время на прочтение6 мин
Количество просмотров38K
Привет, читатель!

В этой статье я расскажу об архитектуре iOS приложений — Clean Swift. Мы рассмотрим основные теоретические моменты и разберем пример на практике.


Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 1: поиск работы

Время на прочтение12 мин
Количество просмотров108K
На Хабре да и вообще в русскоязычном Интернете есть немало инструкций о том, как перебраться в Нидерланды. Я и сам немало полезного почерпнул из одной статьи на Хабре (ныне, видимо, скрытой в черновике уже нет, вот она). Но я все-таки расскажу о своем опыте поиска работы и переезда в эту европейскую страну. Помнится, и когда я только собирался рассылать резюме, и когда уже проходил собеседования, мне было очень интересно почитать об аналогичном опыте других коллег по цеху.

image

В общем, если вам интересен рассказ о том, как C++ программист из Подмосковья искал работу в Европе, желательно в Великобритании, а нашел-таки в Нидерландах, переехал туда сам и привез жену, все это с непогашенной ипотекой в России и с небольшими приключениями — добро пожаловать под кат.
Читать дальше →
Всего голосов 216: ↑202 и ↓14+188
Комментарии306

Application Coordinator в iOS приложениях

Время на прочтение20 мин
Количество просмотров26K
Каждый год в платформе iOS происходит множество изменений, к тому же регулярно выходят сторонние библиотеки по работе с сетью, кэшированию данных, отрисовке UI через JavaScript и прочему. В противовес всем этим тенденциям Павел Гуров рассказал об архитектурном решении, которое будет актуально независимо от того, какими технологиями вы пользуетесь сейчас или будете пользоваться через пару лет.

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



О спикере: Павел Гуров занимается разработкой iOS приложений в Avito.


Всего голосов 38: ↑37 и ↓1+36
Комментарии7

Эмиграция и всё о ней в телеграм-блогах

Время на прочтение6 мин
Количество просмотров70K

«Хорошо там, где нас нет» — думают многие и годами живут на одном и том же месте. Но мир слишком разнообразен, чтобы всю жизнь провести в одной стране.


image

Карта каналов об эмиграции


На помощь приходит Telegram, где в последние годы появилось уникальное сообщество авторов жанра «я — эмигрант».


Каждый день очередной эмигрант решает вещать из своей страны и заводит канал в телеграме. Ребята (а 90% из них работают в IT или около IT индустрии) делятся полезными советами, общаются с читателями в чатах, пропагандируют свободу перемещения, рассказывают о плюсах и минусах эмигрантской жизни, честно и без прикрас выдают информацию, которую не найти в поисковиках.


Какие на самом деле жители выбранной ими страны? Как найти жилье? Как устроится на работу? В чем отличия менталитета? Или даже Как проходят свидания? Как строится личная жизнь в другой стране? Такого нет в Google! :)


Я собрал максимально большой список таких блогов, отсортировал по странам и делюсь с вами.

Читать далее
Всего голосов 49: ↑44 и ↓5+39
Комментарии57

Мобильная разработка. Swift: таинство протоколов

Время на прочтение11 мин
Количество просмотров32K
Сегодня мы продолжаем цикл публикаций на тему мобильной разработки под iOS. И если в прошлый раз речь шла о том, что нужно и не нужно спрашивать на собеседованиях, в этом материале мы коснемся тематики протоколов, которая имеет в Swift важное значение. Речь пойдет о том, как устроены протоколы, чем они отличаются друг от друга, и как сочетаются с интерфейсами Objective-C.


Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии17

Concurrency в Swift 3 и 4. Operation и OperationQueue

Время на прочтение31 мин
Количество просмотров81K



Если вы хотите добиться UI отзывчивости вашего iOS приложения, выполняя такие затратные по времени куски кода, как загрузка данных из сети или обработка изображений, то вам нужно использовать продвинутые паттерны, связанные с многопоточностью (сoncurrency), иначе работа вашего пользовательского интерфейса (UI) начнет сильно замедляться и даже может привести к полной его «заморозке». Вам нужно убрать ресурсо-затратные задачи с main thread (главного потока), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI).

В текущей версии Swift 3 и ближайшей Swift 4 (осень 2017) это можно сделать двумя способами, которые пока не связаны с встроенными языковыми конструкциями Swift, начало реализации которых будет только в Swift 5 (конец 2018).

Один из них использует GCD (Grand Central Dispatch) и ему посвящена предыдущая статья. В этой статье мы покажем, как достичь отзывчивости UI в iOS приложениях с помощью таких абстрактных понятий, как операция Operation и очередь операций OperationQueue. Мы также покажем в чем различие этих двух подходов и какой из них в каких ситуациях лучше использовать.

Код для этой статьи можно посмотреть на Github.
Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии9

Многопоточность (concurrency) в Swift 3. GCD и Dispatch Queues

Время на прочтение28 мин
Количество просмотров332K
Надо сказать, что многопоточность (сoncurrency) в iOS всегда входит в вопросы, задаваемые на интервью разработчикам iOS приложений, а также в число топ ошибок, которые делают программисты при разработке iOS приложений. Поэтому так важно владеть этим инструментом в совершенстве.
Итак, у вас есть приложение, оно работает на main thread (главном потоке), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI). Как только вы начинаете добавлять к вашему приложению такие «затратные по времени» куски кода, как загрузка данных из сети или обработка изображений на main thread (главном потоке), то работа вашего UI начинает сильно замедляться и даже может привести к полному его «замораживанию».



Как можно изменить архитектуру приложения, чтобы таких проблем не возникало? В этом случае на помощь приходит многопоточность (сoncurrency), которая позволяет одновременно выполнять две или более независимые задачи (tasks): вычисления, загрузку данных из сети или с диска, обработку изображений и т.д.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии14

Быстрые команды Siri

Время на прочтение13 мин
Количество просмотров21K


Одна из полезных (по моему мнению) фич iOS 12, представленных на WWDC 2018Siri Shortcuts.


Шорткат (англ. shortcut) — быстрая команда, короткий способ совершить какое-либо действие в обход стандартному сценарию.


В своих приложениях вы можете привязывать шорткаты для некоторых действий. Обучаясь на том, как и когда пользователь их выполняет, Siri начинает по-умному, в нужное время и место, предлагать ему эти шорткаты и, что самое крутое, пользователь сможет их вызывать фразами, которые сам к ним привяжет! Под катом подробнее.

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии5

Новичок или опытный? Как нанять мобильного разработчика под iOS, который что-то действительно умеет

Время на прочтение8 мин
Количество просмотров17K
Мобильная разработка — это особая кухня, и в ней есть свои нюансы. Именно поэтому собеседования с кандидатами в отдел разработки под iOS должны проходить с определенным уклоном. Сегодня мы расскажем, как проходит прием в штат мобильных разработчиков Acronis, и какие курьезы бывают на собеседованиях, когда соискатель считает, что достаточно запомнить несколько умных слов, а потом «разберемся на месте».

image
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии86

Универсальное решение для UITableViewRowAction и UIContextualAction

Время на прочтение7 мин
Количество просмотров9.1K


Многие сталкивались с проблемой реализации красивого отображения кнопок для UITableViewCell при сдвиге влево. Некоторые использовали стандартный функционал «из коробки», другие заморачивались над собственной реализацией, а кто-то обошелся Unicode-символами. В этой статье я расскажу как добиться максимальной кастомизации UITableViewRowAction.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии5

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность