- Программирование под Android для начинающих. Часть 1
- Резюме Android-разработчика [+ Шаблон для android developer]
- Общие рекомендации для Android-разработчика
- Опыт работы в резюме Android-разработчика
- Примеры тестовых заданий для Android и iOS
- Задача 1. Приложение «Погода»
- Задача 2. Репозитории GitHub
- Задача 3. Пользователи GitHub
- Задача 4. Приложение «Вечеринка»
- Задача 5. Приложение из 1-го экрана
- Задача 6. Приложение «Авто»
- Задача 7. Проверка адреса email
Программирование под Android для начинающих. Часть 1
Здравствуйте. Сегодня на глаза попался пост о курсе программирования под Android на сайте Linux Foundation, а вместе с ним — и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.
Программирование под Android для начинающих. Часть 1
Смартфоны и планшеты на Android все чаше встречаются в наших сумках и карманах, и программирование под Android также становится все популярнее. Это отличная платформа для разработки — API прекрасно документирован и прост в использовании, да и просто интересно создать что-то, что вы cможете запустить на своем смартфоне. Изначально вы можете обойтись и без него, создав и протестировав код с помощью эмулятора на вашем Linux ПК. В первой из двух частей этого введения объясняется как создать простое приложение с таймером, а также даются начальные сведения о Android API. Курс подразумевает наличие начальных представлений о Java, XML и технологиях программирования, но тем не менее не стесняйтесь попробовать даже если вы имеете об этом очень смутное представление.
Начало работы и среда разработки
Немного о версиях: последней версией Android является 4.2 (Jelly Bean), но, как можно выдеть по этой диаграмме, она еще недостаточно распространена. Лучше всего начинать разработку под одну из версий: 4.0 (Ice Cream Sandwich) или 2.3 (Gingerbeard), особенно с учетом того, что версии Android поддерживают обратную совместимость (т.е. ваш код для версии 2.3 будет работать и на 4.2), а приложения, разработанные для более поздней версии, не всегда будут работать и на старой. Приведенный здесь код должен работать на версиях 4.0 и 2.3.
Простейший способ получить среду разработки — установить Android Bundle, который можно скачать здесь. Также вам понадобится JDK 6 (не только JRE). Не забудьте что Android не совместим с gcj. Если вы уже используете Eclipse или другую IDE, то вы можете попробовать настроить ее под Android. Как это сделать — описано здесь. Теперь создайте проект под именем Countdown с помощью Eclipse, или из командной строки. Я установил в настройках BuildSDK 4.0.3 и minimum SDK 2.2, и (в Eclipse) использовал шаблон BlankActivity.
Мой первый проект под Android: интерфейс
Первой нашей программой под Android будет таймер, показывающий обратный отсчет от 10 секунд после нажатия кнопки. Прежде чем писать код, нужно создать интерфейс — то, что пользователь увидит, запустив наше приложение. Нужно открыть res/layout/activity_countdown.xml и создать XML шаблон — с помощью редактора Eclipse или текстового/XML редактора ввести следующее:
Обратите внимание на string/start и string/__00_30. Их значения будут расположены в res/values/strings.xml:
Это общепринятый способ обращения к ресурсам в Android: лучше использовать ссылки на строковые переменные, чем жестко заданные строки.
Мой первый проект под Android: код
Теперь откроем в редакторе файл CountdownActivity.java — и мы готовы писать код нашего приложения. Вы должны увидеть автоматически сгенерированную «заглушку» метода onCreate(). Он всегда вызывается как только создается объект Activity, и в него вы можете поместить какие-либо функции, которые должны выполняться при запуске приложения. (Eclipse также может создать пустой метод onCreateOptionsMenu(), но мы пока не будем обращать на него внимания). Введите следующий код:
Вы видите как просто оказалось создать наш первый проект: Android API включает в себя CountDownTimer, который мы можем использовать. Мы объявили его и поле отображения обратного отсчета как закрытые (private) свойства класса Activity. В методе onCreate() мы использовали метод setContentView, чтобы подключить наш XML-шаблон. Такой R.foo.bar синтаксис — это стандартный способ обращения к XML-ресурсам в Android, и мы встретимся с ним еще много раз.
findViewById — это еще один метод, который вы будете часто использовать. Здесь он возвращает ссылки на поле вывода таймера и кнопку Start, описанные в XML-шаблоне. Для кнопки, чтобы мы могли обработать ее нажатие, должен быть задан «перехватчик» OnClickListener, и его метод onClick(). Здесь он просто вызывает метод showTimer() c заданным числом миллисекунд (сейчас жестко заданным в коде).
Итак, что делает showTimer():
Класс CountDownTimer делает за нас почти всю работу, что очень приятно. В начале мы проверяем, существует ли уже таймер, и, если он есть, то сбрасываем его. Далее мы создаем новый таймер с заданным числом миллисекунд для обратного отсчета (из параметра метода showTimer()) и с заданным числом миллисекунд между интервалами отсчета. По истечении времени между интервалами вызывается метод onTick().
CountDownTimer — абстрактный класс, и методы __onTick() и __onFinish() должны быть реализованы в его подклассе. Мы переопределяем метод onTick(), уменьшающий выводимое число на единицу по истечении каждого интервала, и метод onFinish(), выводящий на дисплей сообщение о окончании обратного отсчета. Потом start() запускает таймер.
С помощью команды «Run» в Eclipse вы можете запустить созданное приложение, при этом будет автоматически запущен эмулятор Android. Посмотрите документацию по Android если вы хотите узнать больше о настройке эмулятора, или о запуске приложений из командной строки.
Поздравляем, вы только что создали свое первое приложение под Android. Во второй части этого введения мы более подробно рассмотрим структуру Android-приложения, и сделаем некоторые улучшения нашей программы: ввод времени обратного отсчета, кнопку Stop и меню. Также мы запустим его на реальном устройстве, а не на эмуляторе.
Более подробную информацию вы можете найти в разделе Android Development Training сайта The Linux Foundation’s Linux training website.
Источник
Резюме Android-разработчика [+ Шаблон для android developer]
При поиске кандидата рекрутер просматривает сотни анкет, поэтому резюме Android-разработчика должно выделяться среди конкурентов. Надо уделить внимание дизайну, интересным фактам. Многие соискатели делают типичные ошибки при составлении анкеты. Рассмотрим в статье, как сделать идеальное резюме Android-разработчика.
Пример резюме Android-разработчика
в среднем 5,00 (4 голосов)
Примеры резюме в смежных специализациях:
Общие рекомендации для Android-разработчика
Резюме составляется в формате PDF. Другие типы файлов (даже ворд) могут отличаться на разных компьютерах, из-за чего внешний вид анкеты сильно меняется. В частности, это проявляется в съехавших границах, блоках, иконках. В итоге страдает дизайн.
Писать надо грамотно. После составления резюме его нужно перечитать дважды. Первый раз – сразу после написания, второй раз – на следующий день, чтобы взглянуть на анкету свежим взглядом. Если ваш уровень грамотности низкий, то пользуйтесь специальными сервисами (Тургенев, Орфограммка).
Пишите кратко. Старайтесь все факты оформлять в виде списков. Так вы сможете уместить всю информацию на одной странице. К тому же в анкете будет проще ориентироваться. Кроме того, вы избавите себя от словоблудия.
Дробите информацию на блоки:
- самые необходимые из них: личные данные, навыки, опыт, образование, контакты, о себе;
- выделяйте блоки заголовками, границами, иконками;
- вверху анкеты располагайте наиболее ценную информацию: личные данные, контакты.
Android-Разработчику в резюме полезно указать дополнительные ссылки на различные ресурсы:
- GidHub. Тут можно выкладывать примеры кода, чтобы работодатель смог оценить ваш стиль программирования;
- серьезные проекты, в которых вы принимали участие. Но обязательно указывайте, за какую часть работы вы отвечали. Это поможет оценить вашу способность разрабатывать приложение с нуля;
- книги или статьи, которые вы писали (выкладывайте их онлайн, чтобы работодатель смог их прочитать);
- личные блоги или сайты. Они помогут оценить уровень знаний в программировании.
Пример составления личной информации:
Один из важнейших приемов – отправка примера кода. Так начальство сможет оценить то, как вы используете классы, какую архитектуру предпочитаете, а также другую ценную информацию, которую нельзя пересказать в анкете.
Важным компонентом успеха является дизайн анкеты:
- подберите красивые, но неброские шрифты (избавьтесь от заезженных стилей);
- используйте цвета. Лучше всего подойдет зеленый или синий. Они нейтральны и подходят для официального документа. В крайнем случае, для выделения элемента используете оранжевый оттенок;
- всю информацию необходимо поместить на одной странице;
- обязательно вставляется личная фотография в деловом стиле.
Есть несколько требований к фотографии:
- формат – стандартный, 3*4;
- вы на ней обязаны улыбаться. Так вы передадите свою уверенность и позитив;
- необходим деловой внешний вид: костюм, галстук;
- фон делается белым.
Опыт работы в резюме Android-разработчика
Как правильно описывать свой опыт:
- не перечисляйте все свои функции. Указывайте только те обязанности, которыми реально занимались;
- если работали на биржах фриланса, то обязательно расскажите об этом и оставьте ссылку на свой аккаунт;
- абстрактные обязанности часто не вызывают интереса у работодателей. Поэтому опишите самые интересные и сложные проекты, в которых принимали участие. Яркий пример расскажет о вас больше;
- при указании места работы пишите сначала название фирмы, годы по трудовой книжке, должность;
- если были разрывы в опыте работы, то опишите их причину. Уважительным поводом может стать отпуск, индивидуальное предпринимательство, декрет;
- выделяйте лишь релевантный опыт. Не стоит писать, что вы были шофером, если претендуете на должность Android-разработчика;
- используете обратный хронологический порядок: последнее место работы указывайте вверху;
- акцент делается на последних 5-10 годах опыта, более ранние должности можно упомянуть вскользь;
- если часто меняли работу (от 1 раза в год), то опишите причины для смены места;
- всю информацию оформляйте списками.
Какие компетенции станут уместны в резюме Android-разработчика:
- разработка Android-приложений «с нуля»;
- техническая поддержка, устранение багов, выпуск обновлений;
- работа с чужими приложениями: рефакторинг, оптимизация, переход с одной библиотеки или языка программирования на другие аналоги;
- разработка архитектуры, работа с базами данных;
- добавление нового функционала в программу.
Вот пример грамотного описания опыта работы:
Источник
Примеры тестовых заданий для Android и iOS
Очень часто при приеме на работу, программиста просят выполнить тестовое задание. Особенно это актуально для Juniour специалистов. В большинстве случаев необходимо создать мини приложение, где продемонстрировать свои навыки проектирования и кодирования.
Ниже представлены реальные примеры тестовых заданий для Android и iOS разработчиков, которые компании давали моим студентам. Далеко не все из них понятные и адекватные, но это то, что в реальности присылают кандидатам.
Задача 1. Приложение «Погода»
На 1-м экране (отображение) должно быть:
- Возможность выбрать город (3-4 города)
- Возможность выбрать сезон года
- В зависимости от п.1 и п.2 — отображение средней температуры за сезон в городе
- В зависимости от п.1 — отображать тип города (малый, средний, большой)
На 2-м экране (настройки) должно быть:
- Управление списком городов (город, тип)
- Управление температурой по месяцам
Приложение на первом экране должно отображать информацию, введенную пользователем на втором экране. Например, на втором экране вводим: город «Минск», тип «средний», температура июнь «23», июль «28», август «25». На первом экране в списке городов, должен отобразится Минск, тип «средний» и температура за сезон «лето» = 25,3 (среднее арифметическое 3-х месяцев).
Обязательно использовать паттерны:
- Lazy singleton
- Factory: получать тип города в зависимости от его названия
- Decorator: При запросе средней температуры за сезон в городе — должна быть возможность получить строку для логирования
- Observer: Дополнительно выводить сообщение, о температуре, через Snackbar
- Strategy: В зависимости от стратегии — выводить температуру в необходимом формате (градус Цельсия, градус Фаренгейта, Кельвин)
Условия:
- Без использования сети
- БД: SQLite
- Мы ожидаем выполнения задания без применения сторонних библиотек, кроме официальных (таких как AndroidX, Android Architectural Components, CoreData и т.д.)
- Результат выложить на Github.com
Задача 2. Репозитории GitHub
- При помощи GitHub API отобразить список репозиториев у организации xxx (github.com/xxx)
- Дизайн — полностью на ваше усмотрение
- Код разместить на GitHub и прислать нам ссылку
Обязательно:
- Код на Kotlin/Swift
- Задействовать RxJava/RxSwift
- Покрыть юнит-тестами (UI не стоит)
Желательно:
- Обработка сетевых ошибок
- Поиск репозиториев в рамках организации по названию (просто фильтр списка подойдёт)
- MVI, MVVM, MVP — на ваше усмотрение, будет интересно посмотреть, но лучше без сторонних библиотек
Задача 3. Пользователи GitHub
Главный экран:
- Users (список всех Github пользователей). Использовать API https://developer.github.com/v3/users/#get-all-users
- В элементе списка отрисовать avatar, login (title), id (subtitle)
- По нажатию на элемент списка реализовать переход на UserDetails
- Реализовать pagination и Pull-to-refresh
UserDetails (экран с информацией о пользователе):
- Использовать API https://developer.github.com/v3/users/#get-a-single-user
- Поля: Avatar, Name, Email, Organization (если есть), Following count, Followers count, Дата создания аккаунта
Требования:
- Структурированный код (архитектурный паттерн на усмотрение кандидата)
- Язык Java/Kotlin/Swift
- Код поместить в репозиторий на GitHub/Bitbucket/GitLab
- Неоднозначности задания трактуются на усмотрение разработчика
Задача 4. Приложение «Вечеринка»
На экране располагаются:
- Картинка (загружается по URL)
- Название вечеринки
- Имя пригласившего
- Фото пригласившего (извлекается по URL)
- Список гостей с фото, которые идут вместе с текущим пользователем. Фото загружаются по URL
Все данные должны загружаться из файла в формате JSON, зашитого в ресурсах приложения.
Критерии проверки: корректность работы: отсутствие крашей и багов, соответствие требованиям, код как для продакшена, читабельный и аккуратный, с разделением обязанностей между классами, код должен легко модифицироваться, из учета, что новые требования могут быть выставлены каждую неделю, при использовании RecyclerView нежелательно использовать дополнительные библиотеки.
Задача 5. Приложение из 1-го экрана
- Необходимо создать приложение состоящее из 1 экрана
- Реализовать данное задание с применением RxJava/RxSwift, любого DI (например Dagger 2) и MVP.
Реализовать:
- База данных 5 полей и заполнить любыми данными
- Вывод в активити или фрагмент в виде списка
- Live search по базе данных
- Реализовать сортировку, любой параметр
Задача 6. Приложение «Авто»
Приложение, должно иметь следующие функции:
- Отображение списка автомобилей с характеристиками (10-12 автомобилей, 3 производителя, 1-3 марки у каждого производителя)
- Добавление нового автомобиля
- Редактирование деталей автомобиля
Желательно:
- Фильтрация по производителю и марке
- Сортировка по цене
Задача 7. Проверка адреса email
Создать хороший UX для пользователей, вводящих адрес электронной почты и пароль при регистрации в приложении.
Требования:
- Проверка формата электронной почты. Пример: [email protected] не является действительным адресом электронной почты
- Пользовательский интерфейс должен показывать, действителен или нет адрес электронной почты. При необходимости интерфейс должен указать, что не так с адресом
- Автозаполнение и проверка доступности домена. Пользователи часто опечатываются при вводе адреса. Например, указывают неправильно доменное имя (gmail.con вместо gmail.com)
- Проверка пароля. Нет ограничения на вводимые символы. Есть ограничение минимальной и максимальной длины
- При необходимости, интерфейс должен указать, что неправильно
- Проверить, что заполнены все поля, и указать, какое именно не заполнено
Для автозаполнения необходимо:
- Проверить существование введённого домена
- Указать, что неправильно в введённом имени
- Предложить Автозаполнение доменного имени самыми вероятными и популярными доменными именами. Пример: если пользователь вводит «[email protected]», то продолжениями могут быть «[email protected]», «[email protected]» и т.д. Если пользователь уточняет «[email protected]», то продолжениями могут быть популярные домены, начинающиеся с «g». Например: «[email protected]», «[email protected]»
Источник