Android vs iOS: кто быстрее покорит Эверест?

Привет всем мобильным разработчикам! Мы одинаково любим Android и iOS. Но у каждого свои предпочтения. Предлагаем определить фаворита в дружеском поединке. Для этого перенесёмся в Гималаи и покорим Эверест. Выберите команду и постарайтесь дать как можно больше правильных ответов, чтобы добраться до вершины первыми. На весь тест 10 минут.


Если думаете, что альпинизм никак не связан с мобильной разработкой, поспешим развеять сомнения и проведём очевидные параллели. Для восхождения на Эверест нужна хорошая физическая форма. Нужно тренировать выносливость, прокачивать дыхательную и сердечно-сосудистую системы: заниматься плаванием, бегом, ездить на велосипеде и проводить кардиотренировки. А чтобы стать разработчиком Android/iOS, надо изучать основы и продвинутые темы в Kotlin/Swift, писать разные алгоритмы, разбираться в UI-элементах и базах данных, взаимодействовать с API на сервере, отлаживать pet-проекты… 

Далее определяем готовность. Сможете три-четыре раза подряд подняться на 15-й этаж? А пробежать 10 километров? Если оба ответа «да», то уже можно собираться в путь (ну почти). Так же и с готовностью к первой работе. Сможете ответить на большинство из «50 вопросов к собеседованию», написать проект из 10 экранов с подгрузкой информации онлайн и сохранением во внутренней базе данных? Если ответили «да» на оба вопроса, можно рассылать резюме.

Когда планируете экспедицию в горы, убедитесь, что на трёх новичков в группе будет минимум один мастер. Убедитесь, что маршрут не требует значительного опыта в альпинизме. Изучите длительность похода и рассчитайте время на акклиматизацию. Так же и с профессией Android/iOS-разработчика. Когда выбираете компанию для работы, убедитесь, что в ней есть более опытные программисты, которые подскажут и направят. Убедитесь, что проект интересен, а используемые технологии хорошо знакомы… Совпадения? Не думаем. Пройдите тест и убедитесь сами.

@
28.11.2022 18:59 UTC
Первоисточник

Комментарии

@diakin
28.11.2022 18:20 UTC
+15

Мы одинаково любим ненавидим Android и iOS.

@aleksandy
29.11.2022 06:37 UTC
+4

Какие коллекции можно использовать в Kotlin?

Queue
Нет, в Kotlin нет такой коллекции.

Stack
Нет, в Kotlin нет такой коллекции.

Во-первых, вопрос и ответ не соответствуют друг другу: наличие в стандартной библиотеке Котлина и возможность использования суть есть разные вещи. Потому как java.util.Queue и java.util.Stack никуда не делись.

Какие команды git используются для получения данных с сервера и сохранения их локально?

pull
Да, git pull получает с сервера все изменения, сохраняет их локально и пытается объединить с текущей веткой.

merge
Нет, git merge используется для объединения двух веток.

Какая штука интересная получается. Значит pull используется для получения данных с сервера, а merge с какого-то перепуга нет. Хотя pull по факту псевдоним для запуска последовательных fetch и merge. А ещё, ВНЕЗАПНО, mergeв качестве ветки-источника можно указать и ветку из удалённого репозитория, т.ч. ещё один прокол.

@Reverie_moon
29.11.2022 14:19 UTC
0

Добрый день!

  1. Какие коллекции можно использовать в Kotlin?

Вы правы, с такой постановкой вопроса это правильные ответы. Недоглядели этот нюанс.

  1. Какие команды git надо ввести, чтобы получить данные с сервера и сохранить их локально?

Про псевдоним верно. Но вопрос был именно про то при вводе каких команд данные затянуться с сервера локально. Формулировка оказалась обтекаемой. По поводу merge с префиксом репозитория предлагаю вам перепроверить, так как именно получения данных с сервера в этом случае не происходит.

29.11.2022 17:08 UTC
0

Не могу пройти мимо не сказав, что в стандартой библиотеке котлина есть ещё ArrayDeque с прекрасным нулл френдли API

@John_Hooper
29.11.2022 08:31 UTC
+4

Flutter - и победит дружба!

@sergkrovel
29.11.2022 08:43 UTC
+2

До того, как купил себе 13 айфон думал, что всей душой люблю Андроид. Хотя у друзей брал поюзать, но совсем не нравилось. А вот 13 "зашёл". И теперь я за ios, хотя с появления первого смартфона пользовался андроидом.

@spiceginger
29.11.2022 13:21 UTC
0

Кто понял почему после ответ отмечет правильным что 3 будет после 2

print(1)
 DispatchQueue.main.async {
     print(2)
     DispatchQueue.main.async {
         print(3)
         DispatchQueue.global().sync {
             print(4)
         }
         print(5)
     }
     print(6)
 }
 print(7)
@dabystru
30.11.2022 09:48 UTC
0

Сразу напечатает 1, 7 и положит команды для асинхронного выполнения в очередь main. Затем 2, 6 и положит ещё одну пачку команд. Затем 3, потом 4 (потому, что sync), после 5. Итого: 1, 7, 2, 6, 3, 4, 5.

30.11.2022 09:50 UTC
0

Совершенно верно. То есть в тесте неправильный ответ ?‍?. После 2 будет 6

30.11.2022 11:34 UTC
-1

@ dabystru На самом деле 4 выведется не так, как Вы написали, 5-ка вызывается в другой очереди, хоть и синхронно ?

30.11.2022 18:42 UTC
0

Нет. Четверка заблокирует главный поток. Так что выведется как написано выше

05.12.2022 13:56 UTC
0

Добрый день. 4 не заблокирует главного потока, так как там нету главного потока. Там DispatchQueue.global().sync , а не DispatchQueue.main.sync . А про global() мы знаем, что tasks submitted to the returned queue are scheduled concurrently with respect to one another.

06.12.2022 06:52 UTC
0

Я проверил в Xcode — последовательность 1, 7, 2, 6, 3, 4, 5.

sync приостанавливает тот поток, внутри которого запускается: https://developer.apple.com/documentation/dispatch/dispatchqueue/2016081-sync

Submits a work item for execution and returns the results from that item after it finishes executing.

@Reverie_moon
30.11.2022 11:34 UTC
0

@ spiceginger спасибо вам! Да, действительно, сюда закралась ошибка ? сейчас поправим!

@ilyamodder
02.12.2022 12:47 UTC
0

В Activity есть метод onCreateView, а у вас указано, что он якобы есть только во Fragment.

@Reverie_moon
05.12.2022 13:59 UTC
0

Добрый день. верно, есть, просмотрели :( Спасибо вам!

@jreznot
05.12.2022 16:00 UTC
0

DEL

@
09.12.2022 12:16 UTC
0
НЛО прилетело и опубликовало эту надпись здесь
@danial72
10.12.2022 04:33 UTC
0

android,ios, windows, macos, linux, web, аврора(пока в процессе портирования). Ну и да, он очень нравится заказчикам, которые режут косты нанимая вместо 2 разработчиков одного и снижая TTM

17.12.2022 18:13 UTC
0

А потом все равно переписывают нативно под все платформы, потому что получается кривое и глючное нечто )

17.12.2022 18:38 UTC
0

Можно пример ? Ну что бы снять некоторую голословность.

19.12.2022 08:14 UTC
0

Примеры под NDA ) Регулярно занимаюсь тем, что переписываю поделки на флаттерах и реактах на джаву и котлин.

19.12.2022 14:54 UTC
0

Регулярно занимаюсь тем, что переписываю поделки на флаттерах и реактах на джаву и котлин

А если я переписывал Java/Kotlin-поделку на Flutter, это как назвать?

23.12.2022 04:30 UTC
0

Были веселые случаи, когда нативный код работал хуже, чем то же самое по логике, засунутое в WebBrowser. Это не отменяет вопросов к исходному коду, но факт :)