Как стать автором
Обновить

Советы по созданию приложений к окончанию набора в Школу мобильной разработки Яндекса

Время на прочтение12 мин
Количество просмотров14K
Всего голосов 24: ↑24 и ↓0+24
Комментарии10

Комментарии 10

Спасибо за инфу!
Что вы думаете по поводу использования Kotlin Coroutines для I/O операций в место потоков?

Почему бы и нет, когда они выйдут из экспериментального статуса. Сейчас тащить в прод как минимум опрометчиво.

Пока что rx в среднем сильно понятнее как концепция и проще в миграции, если только мы не говорим о каких-то совсем простых вещах без переключения потоков.

Вопросы в коде:
public class MyAsyncTask extends AsyncTask<String, String, String> {

    private final WeakReference<Context> contextRef;

    public MyAsyncTask(@NonNull Context context) {
        // Разве здесь должно быть не так?
        // this.contextRef = new WeakReference<>(context);
        this.contextRef = new WeakReference(context);
        // И в чём разница?
    }

    ...

    @Override
    protected void onPostExecute(@Nullable String result) {
        final Context context = contextRef.get();
        if (context != null && result != null) {
            Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
        }
    }
}


Спасибо.

Всё верно, должно быть с <>. Это т.н. diamond operator, позволяет опускать полный тип. В процессе редактирования потерял скобки, уже поправил, спасибо.

А что насчет следующего задания в системе Яндекс.Контест, как подготовиться к нему? И почему там нет языков типа Swift/Kotlin?

Позволю себе процитировать окончание статьи


Завершив онлайн-курс от Computer Science Center по алгоритмам, вы познакомитесь с основными алгоритмическими методами и набьёте руку, реализовывая классические алгоритмы. Также в курсе можно найти хороший список литературы. Если практики окажется недостаточно, всегда можно потренироваться на www.hackerrank.com. Только не стоит тратить время на задачи с уровнем сложности Easy — они слишком простые.

Что касается языков, ограничение было введено намеренно, для прохождения курса желательно знание Java.

Я далёк от мира андроид-разработки, но краем уха слышал что Kotlin заменяет Java как официальный поддерживаемый язык, вся новая документация пишется Kotlin-first. Можете прокомментировать почему для новичков желательно начинать с Java? Только ли старые проекты поддерживать, как это происходит в iOS-мире с Objective-C, или же что-то большее?

Лично я считаю, что при разработке на Kotlin/JVM под Android нужно знать Java. Несмотря на то, что Kotlin стал официальным языком разработки, это произошло относительно недавно. Старые, как вы говорите, проекты, не такие уж старые.
Кроме того, существуют документация, примеры, и исходники, которые всё ещё не переведены.
Ну м понимание, что там, под капотом тоже лишним не будет. Смотреть декомпилированный в джаву байт-код приходится иногда.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий