Вопросы будут распределены по хештегам #SwiftInterviewUIKit, #SwiftInterviewRxSwift, #SwiftInterviewArchitecture, #SwiftInterviewGeneral, #SwiftInterviewNotification,
#SwiftInterviewMultithreading,
#SwiftInterviewMemory,
#SwiftInterviewTasks (по мере заполнения количество тем будет увеличиваться). И по сложности #SwiftInterviewBeginner, #SwiftInterviewMedium, #SwiftInterviewAdvanced. В начале большинство вопросов будут для начального уровня, затем будут разбираться более сложные темы.
Так же будут ссылки на мобильные конференции и митапы, на которых можно узнать что-то новое и повысить свой уровень. Надеюсь, канал найдут полезным как начинающие, так и продвинутые разрабочики
Вопросы для разбора, предложения можно присылать @dmitryZazulin
#SwiftInterviewMultithreading,
#SwiftInterviewMemory,
#SwiftInterviewTasks (по мере заполнения количество тем будет увеличиваться). И по сложности #SwiftInterviewBeginner, #SwiftInterviewMedium, #SwiftInterviewAdvanced. В начале большинство вопросов будут для начального уровня, затем будут разбираться более сложные темы.
Так же будут ссылки на мобильные конференции и митапы, на которых можно узнать что-то новое и повысить свой уровень. Надеюсь, канал найдут полезным как начинающие, так и продвинутые разрабочики
Вопросы для разбора, предложения можно присылать @dmitryZazulin
Средний уровень. Notification.
Расскажите что такое Push Notifications, каким образом «пуши» приходят на устройство?
Вопрос не сложный, но требует чтобы человек разобрался в нем. Для джуна знать как приходят и обрабатываются пуши, пожалуй, не обязательно, но миддл же должен разбираться в этом вопросе.
#SwiftInterviewMedium #SwiftInterviewNotification
https://medium.com/ios-os-x-development/learn-master-%EF%B8%8F-ios-remote-push-notifications-in-2018-in-under-10-minutes-825ca6bee092
Расскажите что такое Push Notifications, каким образом «пуши» приходят на устройство?
Вопрос не сложный, но требует чтобы человек разобрался в нем. Для джуна знать как приходят и обрабатываются пуши, пожалуй, не обязательно, но миддл же должен разбираться в этом вопросе.
#SwiftInterviewMedium #SwiftInterviewNotification
https://medium.com/ios-os-x-development/learn-master-%EF%B8%8F-ios-remote-push-notifications-in-2018-in-under-10-minutes-825ca6bee092
Medium
Learn & Master ⚔️ iOS Remote Push Notifications in 10 Minutes
Remote Push notifications enable developers to present information to their users outside the app and to redirect them to the app if…
👍6
Средний уровень. Архитектура приложения.
Как вы понимаете понятие «Чистая архитектура»?
При ответе многие начинают путать понятия «чистая архитектура» и «чистый код», хотя понимание этих принципов очень важно для того чтобы стать качественным программистом. Само понятие «чистая архитектура» появилось в одноименной статье Роберта Мартина, так же уже есть его книга на данную тему. По ссылке ниже вы сможете ознакомиться с основными принципами данной концепции. 👇👇👇
Возможно вы не сразу поймёте для чего нужно разделение приложения на слои, поэтому приведу пример. Условно вы используете архитектуру Viper (можно и MVVM, не столь важно), для хранения данных - CoreData. По этой концепции о CoreData и ее моделях будет знать только сервис, который непосредственно отвечает за работу с БД, и который будет внутри себя перерабатывать «кордатовские» модели в другие сущности для передачи в другой слой. И если появится задача перевести хранение данных на Realm, то вся ваша работа должна свестись к переработке только одного сервиса, потому что ни interactor, ни тем более другие компоненты архитектуры не используют «кордатовие модели» и не знают о текущей БД, соответсвенно вам не придётся менять «пол» приложения. Это очень удобно и практично. 😉
#SwiftInterviewMedium #SwiftInterviewArchitecture
https://apptractor.ru/develop/chistaya-arhitektura-na-android-i-ios.html/amp
Как вы понимаете понятие «Чистая архитектура»?
При ответе многие начинают путать понятия «чистая архитектура» и «чистый код», хотя понимание этих принципов очень важно для того чтобы стать качественным программистом. Само понятие «чистая архитектура» появилось в одноименной статье Роберта Мартина, так же уже есть его книга на данную тему. По ссылке ниже вы сможете ознакомиться с основными принципами данной концепции. 👇👇👇
Возможно вы не сразу поймёте для чего нужно разделение приложения на слои, поэтому приведу пример. Условно вы используете архитектуру Viper (можно и MVVM, не столь важно), для хранения данных - CoreData. По этой концепции о CoreData и ее моделях будет знать только сервис, который непосредственно отвечает за работу с БД, и который будет внутри себя перерабатывать «кордатовские» модели в другие сущности для передачи в другой слой. И если появится задача перевести хранение данных на Realm, то вся ваша работа должна свестись к переработке только одного сервиса, потому что ни interactor, ни тем более другие компоненты архитектуры не используют «кордатовие модели» и не знают о текущей БД, соответсвенно вам не придётся менять «пол» приложения. Это очень удобно и практично. 😉
#SwiftInterviewMedium #SwiftInterviewArchitecture
https://apptractor.ru/develop/chistaya-arhitektura-na-android-i-ios.html/amp
AppTractor
Чистая архитектура на Android и iOS
Применение принципа чистой архитектуры в разработке для Android и iOS.
👍5
Средний уровень. Многопоточность.
GCD. Как вы понимаете последовательные и параллельные очереди. Синхронное и асинхронное выполнение заданий.
Многопоточность достаточная сложная тема для понимания для многих новичков, но вопросы на собеседованиях на данную тему задают часто, поэтому постараемся разобраться с ней. Но если говорить в общем, если вы хотите стать хорошим качественным программистом, то без понимания этой темы вам просто не обойтись.
Особенностью работы iOS является то, что большое внимание система уделяет отрисовке именно UI, которая происходит только на главном потоке main thread, соответсвенно его нужно стараться разгружать от тяжелых задач, которые могут привести к фризам, что сильно раздражает конечных пользователь. Пожалуй, разгрузка главного потока - это самая частая задача, которую вам придётся делать.
Возьмём самый очевидный пример, вы листаете ленту, где много картинок, в этом момент вся загрузка информации должна происходить
на бекграунд потоке, а вся отрисовка изображений на главном.
Но помимо этого с помощью многопоточности можно решать ряд других задач таких как, выполнение параллельных вычислений, ограничение доступа к ресурсам по приоритетам и т.д.
Самый популярный инструмент для работы с многопоточностью - это Grand Central Dispatch или сокращённо GCD, поэтому мы с него и начали. Поставленный вопрос является тоже начальным.
Вкратце ответ приблизительно должен быть таким: в GCD мы работаем с потоками не напрямую, а через очереди, очереди бывают последовательные serial (в этом случае задачи выполняются последовательно друг за другом на одном потоке, и одновременно выполняется только одна задача) и параллельные concurrent (в этом случае задачи выполняются последовательно друг за другом на нескольких доступных потоках, и соответсвенно одновременно может выполняться несколько задач). Задачи берутся из очереди по принципу FIFO (first in first out). Задачу можно добавить как синхронно sync (в этом случае блокируется поток, на котором она добавлена, пока задача не выполниться), так и асинхронно async (в этом случае задача не блокирует поток, а сразу отпускает его после добавления в очередь).
Более подробно по ссылке снизу👇👇👇
https://habr.com/ru/post/320152/
#SwiftInterviewMedium
#SwiftInterviewMultithreading
GCD. Как вы понимаете последовательные и параллельные очереди. Синхронное и асинхронное выполнение заданий.
Многопоточность достаточная сложная тема для понимания для многих новичков, но вопросы на собеседованиях на данную тему задают часто, поэтому постараемся разобраться с ней. Но если говорить в общем, если вы хотите стать хорошим качественным программистом, то без понимания этой темы вам просто не обойтись.
Особенностью работы iOS является то, что большое внимание система уделяет отрисовке именно UI, которая происходит только на главном потоке main thread, соответсвенно его нужно стараться разгружать от тяжелых задач, которые могут привести к фризам, что сильно раздражает конечных пользователь. Пожалуй, разгрузка главного потока - это самая частая задача, которую вам придётся делать.
Возьмём самый очевидный пример, вы листаете ленту, где много картинок, в этом момент вся загрузка информации должна происходить
на бекграунд потоке, а вся отрисовка изображений на главном.
Но помимо этого с помощью многопоточности можно решать ряд других задач таких как, выполнение параллельных вычислений, ограничение доступа к ресурсам по приоритетам и т.д.
Самый популярный инструмент для работы с многопоточностью - это Grand Central Dispatch или сокращённо GCD, поэтому мы с него и начали. Поставленный вопрос является тоже начальным.
Вкратце ответ приблизительно должен быть таким: в GCD мы работаем с потоками не напрямую, а через очереди, очереди бывают последовательные serial (в этом случае задачи выполняются последовательно друг за другом на одном потоке, и одновременно выполняется только одна задача) и параллельные concurrent (в этом случае задачи выполняются последовательно друг за другом на нескольких доступных потоках, и соответсвенно одновременно может выполняться несколько задач). Задачи берутся из очереди по принципу FIFO (first in first out). Задачу можно добавить как синхронно sync (в этом случае блокируется поток, на котором она добавлена, пока задача не выполниться), так и асинхронно async (в этом случае задача не блокирует поток, а сразу отпускает его после добавления в очередь).
Более подробно по ссылке снизу👇👇👇
https://habr.com/ru/post/320152/
#SwiftInterviewMedium
#SwiftInterviewMultithreading
Хабр
Многопоточность (concurrency) в Swift 3. GCD и Dispatch Queues
Надо сказать, что многопоточность (сoncurrency) в iOS всегда входит в вопросы, задаваемые на интервью разработчикам iOS приложений, а также в число топ ошибок, к...
👍5🔥3
Все уровни. Общие вопросы.
Саморазвитие.
На начальном этапе изучения языка необходимо заложить именно фундамент (на моем канале это вопросы начального уровня), без которого невозможно решать самостоятельно продуктовые задачи. После того как заложена основа, нужно как расширять, так и углублять знания. Постоянное саморазвитие — это очень важный аспект для любого программиста, без него не стоит рассчитывать ни на карьерный рост, ни на хорошую зарплату.
Получать информацию можно из многих источников, таких как:
✅ Книги. Определённое что-то советовать не буду, но вы можете сами определиться, что вам интересно или что необходимо изучить, и поискать в интернете. Книги могут быть разной тематики про сам язык swift, про алгоритмы, про паттерны, про анимации, про геймдев и т.д.
✅ Интернет сайты. Среди англоязычных одни из самых полезных https://www.raywenderlich.com, https://medium.com, среди русских — https://habr.com/, на начальном этапе https://swiftbook.ru.
✅ YouTube. Здесь можно найти много полезных видео как по обучению, так и на более сложные темы, видео с различных митапов, от крупных ит-компаний и т.д. Первый свой шаг в RxSwift, который был сложен для меня, сделал как раз благодаря видео с YouTube.
✅ Тематические телеграмм каналы. Можете поискать на различных каталогах и подобрать по вкусу.
✅ Митапы и конференции. Полезны как новичкам, так и опытным разработчикам. На подобных мероприятиях часто разбираются нетривиальные темы и кейсы. Есть хорошая возможность узнать что-то новое. Если же вы будет участвовать в оффлайн режиме, то можно познакомиться с интересными людьми, задать лично вопросы.
✅ Интенсивы и хакатоны. Пожалуй, больше полезны для начинающих разработчиков. На таких мероприятиях есть хорошая возможность прокачать свои как hard, так и soft скилы, поработать в команде и т.д. И сейчас, когда требования для соискателей увеличились, в том числе и по опыту, участие в интенсивах и хакатонах — это хорошая возможность показать себя и устроится в компанию.
По возможности я постараюсь размещать мероприятия из 5 и 6 пунктов, интересных и полезных именно iOS разработчикам. На самом деле они проходят не так часто, поэтому, я надеюсь, вас подобные посты не будут раздражать 😉
#SwiftInterviewGeneral
#SwiftInterviewBeginner #SwiftInterviewMedium #SwiftInterviewAdvanced
Саморазвитие.
На начальном этапе изучения языка необходимо заложить именно фундамент (на моем канале это вопросы начального уровня), без которого невозможно решать самостоятельно продуктовые задачи. После того как заложена основа, нужно как расширять, так и углублять знания. Постоянное саморазвитие — это очень важный аспект для любого программиста, без него не стоит рассчитывать ни на карьерный рост, ни на хорошую зарплату.
Получать информацию можно из многих источников, таких как:
✅ Книги. Определённое что-то советовать не буду, но вы можете сами определиться, что вам интересно или что необходимо изучить, и поискать в интернете. Книги могут быть разной тематики про сам язык swift, про алгоритмы, про паттерны, про анимации, про геймдев и т.д.
✅ Интернет сайты. Среди англоязычных одни из самых полезных https://www.raywenderlich.com, https://medium.com, среди русских — https://habr.com/, на начальном этапе https://swiftbook.ru.
✅ YouTube. Здесь можно найти много полезных видео как по обучению, так и на более сложные темы, видео с различных митапов, от крупных ит-компаний и т.д. Первый свой шаг в RxSwift, который был сложен для меня, сделал как раз благодаря видео с YouTube.
✅ Тематические телеграмм каналы. Можете поискать на различных каталогах и подобрать по вкусу.
✅ Митапы и конференции. Полезны как новичкам, так и опытным разработчикам. На подобных мероприятиях часто разбираются нетривиальные темы и кейсы. Есть хорошая возможность узнать что-то новое. Если же вы будет участвовать в оффлайн режиме, то можно познакомиться с интересными людьми, задать лично вопросы.
✅ Интенсивы и хакатоны. Пожалуй, больше полезны для начинающих разработчиков. На таких мероприятиях есть хорошая возможность прокачать свои как hard, так и soft скилы, поработать в команде и т.д. И сейчас, когда требования для соискателей увеличились, в том числе и по опыту, участие в интенсивах и хакатонах — это хорошая возможность показать себя и устроится в компанию.
По возможности я постараюсь размещать мероприятия из 5 и 6 пунктов, интересных и полезных именно iOS разработчикам. На самом деле они проходят не так часто, поэтому, я надеюсь, вас подобные посты не будут раздражать 😉
#SwiftInterviewGeneral
#SwiftInterviewBeginner #SwiftInterviewMedium #SwiftInterviewAdvanced
👍10
Средний уровень. Многопоточность.
Задача на изображении. Что выведется на экран?
Алоха друзья! Сегодня мы начнём разбирать ещё одну часть большинства собеседований — задачи. Не думайте, что всегда это обязательно какие-то сложные алгоритмы или кейсы (хотя надо быть и готовым и к ним). Независимо от роли на которую вы претендуете могут быть и несложные примеры на проверку знаний. Данная задача по многопоточности мне попалась на двух собеседованиях подряд в большие финтех компании. Попробуйте решить сами перед тем как посмотреть ответ 👇👇👇.
#SwiftInterviewMedium
#SwiftInterviewMultithreading
#SwiftInterviewTasks
Задача на изображении. Что выведется на экран?
Алоха друзья! Сегодня мы начнём разбирать ещё одну часть большинства собеседований — задачи. Не думайте, что всегда это обязательно какие-то сложные алгоритмы или кейсы (хотя надо быть и готовым и к ним). Независимо от роли на которую вы претендуете могут быть и несложные примеры на проверку знаний. Данная задача по многопоточности мне попалась на двух собеседованиях подряд в большие финтех компании. Попробуйте решить сами перед тем как посмотреть ответ 👇👇👇.
#SwiftInterviewMedium
#SwiftInterviewMultithreading
#SwiftInterviewTasks
👍10🔥2
Общие вопросы
Подготовка к нетехнической части собеседования
Друзья, всем привет! Хочу поделиться радостной новостью - вчера на Хабре вышла моя первая, так сказать, вводная статья - «Подготовка к нетехнической части собеседования». В дальнейшем планирую выкладывать там важный материал, связанный напрямую с темой моего телеграмм-канала. Возможно, часть информации, необходимой для подготовки к собеседованиям, будет выкладываться там раньше, поэтому буду признателен, если подпишитесь на меня на Хабре. Заранее спасибо и хорошего дня! Ссылка на статью👇👇👇https://habr.com/ru/post/701962/
#SwiftInterviewGeneral
#SwiftInterviewBeginner
#SwiftInterviewMedium
#SwiftInterviewAdvanced
Подготовка к нетехнической части собеседования
Друзья, всем привет! Хочу поделиться радостной новостью - вчера на Хабре вышла моя первая, так сказать, вводная статья - «Подготовка к нетехнической части собеседования». В дальнейшем планирую выкладывать там важный материал, связанный напрямую с темой моего телеграмм-канала. Возможно, часть информации, необходимой для подготовки к собеседованиям, будет выкладываться там раньше, поэтому буду признателен, если подпишитесь на меня на Хабре. Заранее спасибо и хорошего дня! Ссылка на статью👇👇👇https://habr.com/ru/post/701962/
#SwiftInterviewGeneral
#SwiftInterviewBeginner
#SwiftInterviewMedium
#SwiftInterviewAdvanced
Хабр
Подготовка к нетехнической части собеседования
Для многих разработчиков (как начинающих, так и опытных) собеседование – стресс. Для меня корни этой проблемы уходят в школьное прошлое, когда я боялся выходить к доске на уроках русского языка. Имея...
🔥8❤1