What did I prepare for when I entered an Android application development project while developing the Web in Java?

Since I decided to jump into an Android application development project from April, I will summarize what I learned in advance and what I am studying right now.

Premise

My situation

Status of the matter

Skill set you want to acquire to participate in development

I want to understand the atmosphere of Android application development in the first place

Since the transition from the Web to the app has a lot of paradigm shifts, you want to know the atmosphere first. I am through

I was able to learn without megging.

Google-made video course: Basics

difficulty :star:
Time spent 10 hours

A video learning site called Udacity offers free courses created by Google. There are many courses, but I did the following smoothly. What is JSON? There is also a part like this, so you don't have to clear all of them. Please skip it.

I didn't take a course on how to make a screen, but if I knew the HTML, I could start writing with uncode: shit: for the time being.

The good thing about this course is

That is. A person from Google's Android team speaks expressively. The language is English, but you can understand it in the atmosphere because there are many figures.

図つきで説明してくれる

There are a lot of bullet points

箇条書きでさえ丁寧

This will be the screen of the assignment as it is. It's a smooth UI!

そのまま課題が始まっちゃう

Immediately after editing the code, there is an answer part. Of course, the answer is also posted on GitHub, so you can move it at hand and check it immediately.

By repeating these small steps, I was able to get a feel for the atmosphere by being exposed to a lot of Android app templates!

Google-made video course: Practical edition

difficulty :star::star::star:
Time spent 10 hours

This is also a Google lecture from Udacity.

Here you can try writing an application that uses all the functions after understanding the above course. I did the basics of the basics, API communication and DB surroundings that I could use immediately at work. It also describes how to use GitHub, so I think that those who have experience in web development are unnecessary. Please skip it.

This course is also a little more difficult, but it is still kindly designed!

I want to be able to write Kotlin

Kotlin is better Java so learning costs are not so high

I've heard that in advance, and if you've actually used the Stream API in Java, you're fine. However, of course, there are parts where the idea is different from Java, so there are moments when it is difficult to understand at once. It wasn't that sweet.

Kotlin Koans

difficulty :star:
Time spent 10 hours

A simple collection of problems that understands the characteristics of programming languages is called Koans, which is the Kotlin version. It is made by JetBrains, and by passing the test, you can get a rough idea of the characteristic functions of Kotlin.

I want to be able to use various libraries included in the product

In this product, Retrofit for API communication, orma for OR mapper, DI container I use Dagger for and RxAndroid for asynchronous processing.

Let's write a small app that uses only that from scratch

difficulty :star::star:
Time spent 6 hours

 Through the Udacity course, I managed to grasp the procedure for creating an app, so next I will try the libraries used in the product one by one.

However, I haven't written the app from scratch yet, so I wrote the Todo app after reviewing it.

TodoApp

I found out why ToDo apps are a staple of language and library tutorials. It meant that you could never do complicated work after that unless you could make it without looking at anything as quickly as a ToDo application.

After that, I wrote an app that lists new posts by hitting the Qiita API using Retrofit.

QiitaReader

Another thread processing is realized by RxAndroid, so I was able to practice together here. I was able to try Kotlin conversion later, and I was touched on Kotlin x Android a little.

RxAndroid made a lot of progress when my colleague gave me a good article if I was having trouble with the idea of RxJava at first.

orma made a simple data recording app.

MoodKoro

This is also processed in a separate thread at RxAndroid](https://github.com/gfx/Android-Orma) when registering data.

Dagger will be included in the above recording app. I'm doing my best now.

Combine them all

difficulty :star::star::star:
Time spent ---

We are working hard day and night to make the above recording app into it.

I want to learn design concept

To be honest, I haven't done much about the Clean Architecture and DDD that the product chooses as the foundation, and after I entered, I read the wiki in the team and deepened my understanding by having the team members teach me. ..

Read a simple book about DDD

difficulty :star:
Time spent (I'm reading, but to see the pace so far, until the end)4 hours

I think you should actually read Eric Evans' book, but first, in order to acquire the knowledge to talk with the team members who are seniors of DDD, Understand! I'm reading Domain Driven Design ~ Mochiko-chan's Adventure ~. Rather, I read it as a team after the morning assembly.

I'm glad if you can use it as a reference

Of course, the above things have helped me, but of course I'm not enough at all and I keep studying every day. However, at this point I think it wasn't bad to get out of the state of not knowing anything, so I hope it will be helpful for people in similar situations!

Recommended Posts

What did I prepare for when I entered an Android application development project while developing the Web in Java?
I tried to summarize the stumbling points when developing an Android application
Web application development environment construction in Java (for inexperienced people)
[Personal development] 8 things I did after publishing the web application
[java] What I did when comparing Lists in my own class
What Android development beginners did before releasing the app in 2 weeks
[Android Studio] Set an arbitrary image for the application background [Java]
What I did when JSF couldn't display database information in the view
What I did when I converted java to Kotlin
[Android development] Get an image from the server in Java and set it in ImageView! !!
[Android studio / Java] What you don't understand when you touch it for the first time
What I learned when building a server in Java
I tried using an extended for statement in Java
What Java engineers need to prepare for the Java 11 release
I was addicted to WSl when trying to build an android application development environment with Vue.js
I translated [Clone method for Java arrays] as the Clone method in Java arrays.
Things you often use when doing web development in Java
What I did in the version upgrade from Ruby 2.5.2 to 2.7.1
[Java] Sample project for developing web applications with Spring Boot
[Programming beginner] What to do when rails s becomes an error in the local development environment
What I have learned in Java (Part 1) Java development flow and overview
Collecting client information when an error occurs in a web application
About what I did when creating a .clj file in Clojure
What I did when the DB did not start with docker-compose up
What I did in the migration from Spring Boot 1.4 series to 2.0 series
[Probably the easiest] WEB application development with Apache Tomcat + Java Servlet
What is the difference between a web server and an application server?
I tried to make an Android application with MVC now (Java)
What I did in the migration from Spring Boot 1.5 series to 2.0 series