Путешествие начинается

Три, два, один… Добро пожаловать! Шесть месяцев назад я получил электронное письмо, которое отправит меня в путешествие по Android Developer Nanodegree от Udacity.

Поздравляем, вы были выбраны для получения стипендии Women Techmakers Udacity.

Я буквально подпрыгнул, когда получил эту новость! 😄🎊 Было удивительно знать, что команда Women Techmakers поверила в меня, поверила мне и выбрала меня для этой возможности и для того, чтобы стать частью их замечательного сообщества.

Наностепень

Эта статья даст вам краткий обзор проектов, которые вы завершите во время Nanodegree, и возможностей, которые у вас будут в качестве студента Udacity. Я очень надеюсь, что вам понравится! 👍

Подготовка к Nanodegree - Sprint

Джава

Перед тем, как начать Nanodegree, у меня был опыт работы с JavaScript и Python. Я немного изучил Java через Codecademy, но у меня не было опыта создания реальных проектов на этом языке программирования.

Я решил начать «спринт», где я изучу основы Java и Android за несколько дней, прежде чем начинать курсы для моей Nanodegree.

Я рекомендую эти курсы для изучения Java:

Объектно-ориентированное программирование

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

Я рекомендую эти курсы для изучения ООП:

Основы Android

Чтобы изучить основы Android, я прошел бесплатные курсы, которые предлагает Udacity:

Если у вас есть некоторый опыт программирования, вы можете пройти эти курсы за несколько дней, если полностью посвятите себя этой задаче.

💡 Примечание. Сначала я подумал, что курсы для моей Nanodegree потребуют знания всех тем, представленных в этих курсах по основам Android, но когда я начал свою Nanodegree, я понял, что некоторые из Android Основные темы, такие как Сеть, Намерения и Макет, также были очень подробно объяснены с самого начала.

Разработка программного обеспечения

Во время учебы в Nanodegree я понял, что мне нужно изучить методы разработки программного обеспечения, чтобы сделать мой код более удобным в обслуживании и масштабируемым.

Я прошел эти курсы по разработке программного обеспечения:

Вы изучите методы и инструменты, такие как диаграммы классов UML, как собрать требования для ваших проектов и как определить, какие классы, атрибуты и методы вам нужно создать из этих начальных требований.

💡 Примечание. Эти курсы были потрясающими! Я настоятельно рекомендую принять их перед запуском Nanodegree. Вы также можете выбрать для просмотра определенные лекции по темам, над которыми вам нужно работать.

Nanodegree, поехали!

Система поддержки

Наставничество

С первого дня у вас будет наставник, который будет поддерживать вас через Nanodegree. Меня очень хорошо встретили, когда я впервые вошел в класс, и с тех пор мой наставник очень помогал, предоставляя предложения, идеи и ссылки на полезные ресурсы, когда я задавал вопросы или нуждался в предложении.

Форумы

У вас также будет доступ к форумам с отличными наставниками, которые будут там, чтобы ответить на ваши вопросы и помочь вам во время испытаний, с которыми вы столкнетесь во время Nanodegree.

Вы можете задавать вопросы своему наставнику и на форумах постоянно (даже по выходным! 😃)

Проекты

Проект 1. Приложение "Популярные фильмы" (этап 1)

Самый первый проект, который вы создадите, - это приложение Popular Movies, которое извлекает данные из API База данных фильмов.

На этом этапе вы реализуете базовый функционал и верстку.

Это очень полный проект, который научит вас множеству новых концепций, особенно если вы совсем новичок в Android, как и я.

Основные темы, которые вы изучите в ходе этого проекта:

  • мероприятия
  • Просмотры
  • Адаптивный дизайн
  • логирование
  • Ресурсы
  • Меню
  • Разрешения
  • Основы темы
  • AsyncTasks
  • Разбор JSON
  • RecyclerViews, ViewHolders и адаптеры
  • Намерения (неявные и явные)
  • Сторонние библиотеки Android (Picasso, библиотека для загрузки изображений в ваше приложение)

Udacity предлагает веб-трансляцию, чтобы объяснить:

  • Как реализовать кастомный адаптер.
  • Как мы можем сделать Class Parcelable для оптимизации передачи данных от одного Activity к другому.
  • Как восстановить состояние при вращении с помощью onSaveInstanceState.

👍 Советы

  • Я рекомендую изучить StackOverflow, как определить, доступно ли подключение к Интернету, поскольку одним из требований проекта является обработка сценариев, в которых нет подключения к Интернету. В этих условиях ваше приложение не может аварийно завершить работу.
  • Вам нужно будет предоставить пользователю возможность выбирать между популярными фильмами или фильмами с самым высоким рейтингом и соответствующим образом обновлять представление.

Проект 2: приложение "Популярные фильмы" (этап 2)

На этом этапе проекта вы расширяете функциональность приложения, позволяя пользователю выбирать свои любимые фильмы. 😍

Вы реализуете базу данных SQLite, поставщик контента и будете использовать методы сохранения данных, такие как общие настройки.

Основные темы, которые вы изучите в ходе этого проекта:

  • Жизненный цикл активности Android
  • Погрузчики
  • Сохранение данных (onSaveInstanceState, SharedPreferences, база данных SQLite, внутреннее / внешнее хранилище, сервер)
  • Фрагмент предпочтений и слушатель
  • База данных SQLite (у вас также будет PDF-руководство по операторам SQLite, которые вы можете использовать в своем проекте)
  • Поставщики контента и преобразователи контента
  • Услуги
  • Погрузчики
  • Intent Services
  • Ожидающие намерения
  • Уведомления (обратите внимание, что уведомления требуют другого подхода для Oreo)
  • Услуги переднего плана
  • Радиовещательные приемники
  • ViewGroups и видимость
  • ConstraintLayout
  • Связывание данных
  • Доступность и локализация
  • Поддержка письма справа налево
  • Адаптивный дизайн
  • Шрифты, стили, темы, цвета
  • Квалификаторы папки ресурсов
  • Сенсорные селекторы

👍 Советы

Для этого проекта я бы рекомендовал посмотреть / взять:

  • UX-дизайн для мобильных разработчиков - этот курс действительно помог мне развить эти навыки и подумать о взаимодействии с мобильным пользователем по сравнению с пользовательским интерфейсом на настольном компьютере.
  • Google I / O 2013 Android Design for UI Developers - я настоятельно рекомендую посмотреть этот доклад, в нем представлены шаблоны проектирования, которые будут очень полезны во время Nanodegree.

Проект 3. Приложение "Выпечка"

Ух ты! Мы уже работаем над проектом 3, приложением для выпечки. Это очень интересный проект!

На мой взгляд, это самый сложный проект в Nanodegree, потому что он вводит много новых концепций, таких как тестирование пользовательского интерфейса, воспроизведение мультимедиа и фрагменты.

Я бы рекомендовал разбить различные темы на разделы и изучать их по отдельности, пока вы не почувствуете, что у вас есть твердое представление о каждой технике, чтобы применять ее в реальных проектах. Таким образом, вы можете реализовать по одной функции за раз.

Основные темы, которые вы изучите в ходе этого проекта:

  • Фрагменты
  • Менеджер фрагментов
  • Библиотеки
  • Воспроизведение мультимедиа (с использованием ExoPlayer, сторонней библиотеки)
  • Виджеты (это один из лучших аспектов этого проекта, мне очень понравилось создавать виджет для своего приложения 😍)
  • Espresso (сторонняя библиотека, которая проверяет, правильно ли работает и отображается пользовательский интерфейс вашего приложения)

👍 Советы

Для этого проекта я бы рекомендовал посмотреть:

Проект 4: добейтесь большего

Этот проект в основном ориентирован на изучение того, насколько мощным может быть Gradle для разработки под Android.

Из очень простого начального кода вы создадите собственные задачи Gradle, типы сборки (отладка и выпуск) и разновидности для своего приложения (бесплатные и платные).

В бесплатной версии будет реклама, а в платной - нет. Вы создадите и включите в свое приложение библиотеку Android и библиотеку Java.

Для меня это был один из самых интересных проектов, потому что он заставил меня понять, насколько прекрасен Gradle и как он может улучшить жизненный цикл разработки.

Основные темы, которые вы изучите в ходе этого проекта:

  • Задачи Gradle
  • Groovy
  • Конфигурация задачи
  • Дополнительные сборки
  • Работа с локальными репозиториями
  • Объявление зависимостей
  • Отчеты о зависимостях
  • Автоматизированное тестирование
  • Gradle Wrapper
  • Типы сборки, вкусы и варианты
  • Библиотеки Java
  • Библиотеки Android
  • Proguard
  • Автоматическая подпись

Проект 5. Материальный дизайн для разработчиков Android

Это отличный проект, направленный на реализацию рекомендаций по материальному дизайну в существующем приложении.

Вы узнаете, как использовать цвета, как использовать разные ресурсы для разных разрешений экрана, поверхностей и многого другого!

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

Основные темы, которые вы изучите в ходе этого проекта:

  • Физические пиксели и пиксели, не зависящие от плотности
  • Растровая и векторная графика
  • Квалификаторы ресурсов
  • Графические объекты списка состояний
  • Макет
  • Шаблоны проектирования
  • Поверхности
  • Принципы гештальта
  • Сетки и линии
  • Метрики
  • Цвет
  • Типография
  • Шрифты
  • Фоновая защита
  • Переходы
  • Анимированные векторные рисунки
  • Адаптивный дизайн

👍 Советы

Для этого проекта рекомендую взять:

Проект 6: Capstone Project

Ух ты! Мы почти завершили нашу Нанодегриатуру, время летит незаметно! 😄🎉

Для вашего проекта Capstone вы можете создать приложение, которое пожелаете, любую идею, о которой вы можете подумать. Так захватывающе! Верно? 😀 💡

Мне очень понравился опыт преобразования идеи в рабочий продукт. Это было много трудных слов и очень полезный опыт.

Этот проект разбит на два этапа.

  • На этапе 1 вы должны отправить файл PDF с описанием того, как вы собираетесь реализовать функции своего приложения (включая макеты пользовательского интерфейса для макетов телефона и планшета).
  • На этапе 2 вы отправите работающее приложение 🐣

💡 Идея

Несколько недель я думал о приложении, которое хотел бы создать.

Сначала я проанализировал, какие повседневные проблемы или ситуации возникают у людей, и у меня появилось несколько идей, но я чувствовал, что чего-то не хватает. Я собирался работать над этим проектом примерно 3 месяца и хотел, чтобы он был чем-то, чем я увлекался, чем-то, что, как я чувствовал, могло быть полезно для пользователей.

Я начал записывать все идеи, которые приходили мне в голову, пока… оно не пришло в голову! С тех пор, как я начал работать над своей Nanodegree, я отслеживал ошибки с помощью Trello или листа бумаги. Я знал, что должен быть лучший способ решения этой проблемы, и я хотел исследовать больше и спросить, есть ли у разработчиков по всему миру такая же проблема.

🔍 Исследование

Я поискал в Интернете, чтобы определить, существует ли уже подобное приложение, но не нашел. Я нашел для этой цели коммерческое программное обеспечение, но я подумал, что они могут быть немного сложными для тех, кто учится программировать.

Так… ожил BugWhiz!

Я решил создать простое в использовании приложение для отслеживания ошибок для начинающих разработчиков.

Во время курсов я узнал, что мы можем в конечном итоге разрабатывать продукты для себя, тогда как мы должны разрабатывать для наших пользователей, и что их отзывы являются критическим аспектом успеха приложения, поэтому я решил провести некоторое исследование рынка, чтобы определить, может ли продукт быть успешным.

SurveyMonkey спешит на помощь!

Я создал быстрый опрос, чтобы определить, будет ли мой продукт востребован на мировом рынке.

Я отправил твит со ссылкой на свой опрос и был очень взволнован, когда Udacity ретвитнул его. Внезапно люди стали отвечать на мои вопросы, и я собирал данные от реальных потенциальных пользователей. Этот опыт был бесценен.

📃 Планирование

Для этапа 1 проекта первым шагом является определение функций, которые вы должны реализовать (перечисленные в рубрике), и функций, которые вы хотите реализовать, чтобы сделать ваше приложение особенным и уникальным.

Вы можете выбрать работу с различными сервисами Google Play и / или Firebase. В Nanodegree есть раздел с курсами по каждой из этих технологий.

Решил работать с Firebase. После использования Firebase я бы порекомендовал его всем, кто ищет базу данных в реальном времени. Он обновляется очень быстро, он прост в использовании, имеет очень подробную документацию и реализует функции безопасности, чтобы ваши данные были в безопасности.

В этом проекте я использовал следующие технологии:

  • База данных Firebase в реальном времени
  • Проверка подлинности Firebase
  • Firebase Analytics

Вы также можете узнать об этих темах на дополнительных курсах:

  • Уведомления Firebase
  • Хранилище Firebase

💻 Развитие

На этапе 2 вы создадите свой проект. Это действительно захватывающий этап Nanodegree, на котором вы примените все, что вы узнали, в своем приложении и реализуете функции, выбранные на этапе 1.

👍 Советы

Для этапа 1 вам нужно будет отправить макеты пользовательского интерфейса. Я использовал этот онлайн-инструмент для их создания:

Я рекомендую пройти следующие курсы для вашего Capstone Project:

🎓День выпускного!

Поздравляю! 🎊 🎆 Вы закончили Nanodegree! Но это только начало, потому что после завершения программы у вас появятся навыки, которые вы сможете применить в реальных проектах в своей профессиональной карьере, и вы станете частью глобального сообщества выпускников Udacity.

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

Вы также можете завершить свои карьерные проекты, если не завершили их во время Nanodegree. (Карьерные проекты: LinkedIn, Resume, профиль GitHub и обзоры сопроводительных писем)

🌐 Делитесь ссылками на полезные ресурсы для вашего Nanodegree в этом проекте GitHub, созданном студентами и выпускниками Udacity. ❤️

🙋 Женщинам-технологам:

Я хотел бы выразить свою благодарность и волнение за эту стипендию. Я многому научился во время программы.

У меня была возможность пообщаться с отличными стипендиатами со всего мира и принять участие в сессиях AMA с удивительными образцами для подражания, которые сформировали индустрию высоких технологий.

Большое спасибо команде Women Techmakers за то, что выбрали меня стипендиатом ❤️

Если вы хотите подать заявку на получение стипендии Women Techmakers Udacity, я скажу вам:

Сделай это! Это будет уникальная возможность, опыт, который заставит вас расти как разработчик и как личность. Не стесняйтесь подавать заявку.

Эстефания.

👏 Если вы нашли эту статью полезной, мы будем благодарны вам за аплодисменты 😃