There is no doubt that developing an App of your own is a great tool for beginners to learn technology or find a job (or install X). So how to get started quickly and develop an app of your own. This article will give some advice to more Android novices based on my own experience.

A, misunderstanding

Before we talk about how to develop an app, here are some mistakes to avoid.

  • Reference and copy
  • Surfaces and Principles
  • Effect and Depth

As a novice Android developer, it is a good shortcut to refer to some great projects before learning to develop an app of my own.

However, some novice began to masturbate code, looking at a face meng forced code, unknown so, thinking no matter 37, knock knock will understand. As a result, the final bug was completely lost, with no understanding of the structure and framework of the project, not to mention the technical difficulties involved.

So do not blindly copy, do not mistakenly cut wood work, like looking at the source code to learn the project. First, make clear the structure of the project, the framework used, the functions of each class and the technical points used, break down and learn them one by one, so that they can finally be transformed into their own knowledge.

(2) From the surface into the principle

Don’t focus on specific technical implementations just for implementation’s sake, and don’t be complacent just because you’ve achieved some cool UI effects.

For some technologies, we should know how, but also know why. For example, AIDL, the implementation of interprocess communication, may follow some templates to achieve the purpose. For example: RecyclerView or ListView, according to a certain method can quickly achieve the list layout.

However, these implementations are not only used in one project or one place, but are frequently implemented and will be encountered in jobs or interviews in the future. Therefore, we should encourage ourselves to deepen our understanding and practical application of technology through surface learning principle while developing an app.

For example, I understand the implementation of binder mechanisms for AIDL and further understand interprocess communication in Android. For RecyclerView or ListView, understand the reuse mechanism and how to customize to achieve some special effects, deepen our own technical depth.

(3) Do not blindly pursue results

The fun of Android development is that you can implement your own app development and create experiences with technology.

However, this kind of fun can lead some novices to blindly focus on UI implementation rather than their own technical learning. Sometimes there is no conflict between technology learning and effect. However, in the process of developing app and learning technology independently, we can appropriately focus on the pursuit of UI effect and focus on the pursuit and learning of technology.

Of course perfectionists (obsessive-compulsive disorder) tend to tilt unconsciously, but keep your balance.

Second, preparation

Before we start development, we need to do enough preparation so that we can get twice the result with half the effort.

Generally speaking, novices learn from others when developing their first app and stand on the shoulders of giants. So how to choose an app that they want to make with appropriate technical difficulty and more dry goods?

Select reference APP

  • First choose the type you want to do, such as: player, news, etc., some suitable for novice development of app. Then do a search on Github (be sure to learn how to use Github).
  • Learn about the current popular technology frameworks, choose the ones you want to learn, and screen out apps that use them.
  • Find some projects with more stars from apps that meet the above requirements, because the eyes of the masses are sharp, which means that this project has some redeeming features.
  • Take a look at the structure of the project and don’t blindly pick a few cool implementations. According to their own technical ability to choose, beginners do not choose too complex, step by step, to get twice the result with half the effort.

Develop a prelude to

After selecting one or more reference apps, it’s time to get to know the app thoroughly.

3. Develop app

About the specific development, just introduce some general things, for your reference.

  • Project Building: A good Android application starts with building a project, creating some specifications for the project.
  • Utility classes: AndroidUtilCode, all the utility classes you want to use, can be drawn from it.
  • Base classes: Base classes, such as activities, fragments, etc. in building projects can refer to some online implementations, but large and complete is not good, suitable for their own is the best.

Personal experience

(1) Motivation

As a newcomer to Android, I started to learn how to make an APP in February this year to increase my abilities in various aspects.

In the beginning, I wanted to learn the use of popular frameworks such as Retrofit, RxJava, Glide,EventBus and MVP mode.

When conceiving the whole project, I thought big and comprehensive, and wanted to realize too many functions. However, only news browsing and picture browsing were realized in the end. Although the project was incomplete, I still learned a lot.

(2) Process

Because the functions realized are relatively simple, the cycle of the whole project is about 20 days. In fact, the development cycle was only over 10 days, and I spent the first 10 days learning about the use and principles of each framework.

The process of reading the fucking source code is boring, but it is also a process of accumulation and precipitation.

From my blog, you can see my learning process in preparing for this project. Blogging is really a great way to learn, to make a lot of things your own and not leave them on the surface.

RxJava 2.0: RxJava 2.0: RxJava 2.0: RxJava 2.0

Retrofit configuration details and encapsulation, make your network request easier Retrofit+RxJava network request exception handling

Learning about EventBus, from Using it to parsing it (Top)

MVP mode learning process Android MVP simple introduction and use

Android imitation Bilibili client home page + drawer navigation similar to alipay home page – RecycleView multi-layout structure similar to Alipay application management interface – RecycleView+ItemTouchHelper drag sliding ViewPager+TabLayout+Fragment lazy loading mechanism fully resolved

While doing while writing, all the way down, the harvest is still quite abundant, small friends can try in the summer vacation, very effective.

(3) Results

The finished project looks pretty low for now, but it was a good start. Here are the concrete results to commemorate my first app.



Github address: github.com/LRH1993/Liv…

If you are interested, you can give a star support if you think the above introduction is good.