Про базовый уровень я написал чуть выше — опыт разработки на любом языке. Школа расчитана на програмиистов, которым интересно попробовать себя в другой области, в частности в разработке под Android.
IDE — AndroidStudio
Скажем так, для разработки Android приложений знать Java обязательно, для просмотра курса — нет (человек, владеющий C++, с легкостью разберется о чем идет речь в коде на Java). Опыт разработки на любом языке будет, естественно, плюсом.
Грамотно, но ничего нового. Рано или поздно любой разработчик приходит к модульной архитектуре. Тут главное не переабстрагироваться, а то можно для решения простейшей задачи написать огромный красивый фреймворк, но иногда это излишне. *картинка булки хлеба-тролейбуса*
Про основы языка — спорное утверждение. Решить задание на языке Java с гуглом наперевес — элеменатрно. Но это не значит что человек после этого будет знаком с рантаймом, управлением памятью и прочими составляющими «Основ языка».
Под Java существуют IDE, как и под C# и другие языки, и задача компиляции ложится на них чуть более чем полностью. Так что проблема с компиляцией надумана. Исходный код можно предоставлять в виде проекта любой Java IDE, а можно просто *.java файлами — не имеет значения.
Это задание, по сути, можно решить на любом языке одинаково, с поправкой на синтаксис. Т.е. человеку, знакомому с любым другим языком не составит труда его решить на языке Java, абсолютно его не зная. Программировать человек уже должен уметь, мы лишь предлагаем возможность научиться делать это под мобильную платформу. Обучение языку Java — бонус. Популярные бибилиотеки и фреймворки будут затронуты, естественно.
Нужно понимать, что мы не учим программированию в целом, мы учим программированию под конкретную платформу и на конкретном языке. Строгих критериев, как таковых, нет. Будет оцениваться общий подход к выполнению задачи, выбор алгоритма решения и так далее. Т.е. субъективная оценка того, кому достанется проверка тестового задания.
Проверять наличие сети и как себя приложение ведет в этом случае ненужно. Дефакто мы верим что система сама это разруливает.
Соответственно, тестирование сводится к проверке консистентности данных.
Целиком поддерживаю предыдущего оратора: «По-моему, тут лучше использовать шаблон Listeners.»
А если необходимо отслеживать местоположение. Не просто обращаться к текущему, а именно трекинг.
Делать цикл и проверять поле? Или все-таки Listener? =)
Если мы вынесем стили в отдельный файл, то для описания стилей элемента будем использовать атрибут style.
<TextView
style="@style/CodeFont"
android:text="@string/hello" />
Не стоит выносить layout_* атрибуты в стили, это именно layout-специфичные атрибуты, они отвечают за положение элемента а не за его стиль, хотя даже в самом коде android такое иногда встречается.
IDE — AndroidStudio
Проверять наличие сети и как себя приложение ведет в этом случае ненужно. Дефакто мы верим что система сама это разруливает.
Соответственно, тестирование сводится к проверке консистентности данных.
А если необходимо отслеживать местоположение. Не просто обращаться к текущему, а именно трекинг.
Делать цикл и проверять поле? Или все-таки Listener? =)
Не стоит выносить layout_* атрибуты в стили, это именно layout-специфичные атрибуты, они отвечают за положение элемента а не за его стиль, хотя даже в самом коде android такое иногда встречается.