I am Android Developer with Java and Kotlin, Ask Me Anything!

Did you find this post useful? Show some love!
DISCUSSION (24)

Hey Ankit, I have a question about the ecosystem. Has React Native overshadowed mobile app development to the point that native developers are marginalized? Or are there still use cases where native apps are far superior?

IMHO native is better if your complexity level is medium and performance is needed. If you are business that want to make a working demo quickly for both android and ios, sure choose React Native. But if you want awesome animations, performance then go the native way. Checkout Airbnb's experience with react native and why they are switching to native completely.

Please Gaurav, what's you mean by "IMHO"?!

Ok, please Gaurav, want to know how can I make my self a Senior Android Developer?

  • And what's the knowledge and tools should be know as an Android Developer?

Thank you so much! :)

Hi man. I am NOT a senior android developer. In my opinion, I still lack the professional experience. Whatever I know about android has come from personal projects and internships during my college. I started my full-time job at Samsung Noida,India 3 months ago. There is still so much I need to learn in android, java and beyond.

Anyways, I've written an article for people who want to learn android development. This was the way I went - twitter, blog posts and a burning passion for improving my android skills.
Article link: dev.to/gauravchaddha1996/learning-...

Hope this article helps you. Mainly consider publications on android on medium, android subreddit, twitter as your best resource. Also checkout my GitHub repo on android resources. I hope this helps you.

Aha! The AirBnB example would be nice to show. Thanks a lot! 😄

I really admire Java as a language, and have always believe that most languages would be better if they adapt some of Java's OOP goodness. But for development (either web or mobile), it's really overwhelming to get started since every IDE does its own thing and there's a ton of configuration just to set things up. This is pretty apparent when you compare a "Hello World Web App": setting up with PHP, Python, or even Rails is wayyy simpler than Spring or JEE.

So my question is: what's a good strategy to not get overwhelmed with these details? Any tips with this context in particular?

Has Kotlin gained enough momentum and maturity where you would recommend it to new Android developers instead of learning Java?

Also, strictly for learning Android development, what are some pros and cons of learning Kotlin first vs Java first?

During the I/O keynote, Google announced that they were making Kotlin an officially supported language for Android development. As of the 3.0 Preview, Android Studio ships with Kotlin support built-in, so creating an Android project that understands Kotlin code is now as easy as selecting a checkbox in Android Studio’s project creation wizard.

title : Kotlin vs Java

  • succinct code – with no findViewByIds

textView.setText("Hello World") - kotlin

TextView text = (TextView) findViewById(R.id.textView);

text.setText("Hello World");
Java need two line for same work.

  • Kotlin is null safe by default

  • Extension functions

Kotlin support

  • Coroutines are first-class citizens

  • There are no checked exceptions

  • Native support for delegation

  • Data classes
    And many more.

Would you use Kotlin for overall server-side applications instead of Java? Why or why not?

Sure! It’s amazing for server-side programming and plays well even with J2EE.

It can use anything Java can, so it’s as powerful as Java and has beautiful syntax as a bonus.

Kotlin is great for server-side work, Spring has very nice integration with it. I love the Project Reactor stuff they've added in Spring 5 too, which comes with its own set of Kotlin extensions.

Should i learn kotlin or java first ?

If you are new to programming then read come articles about Object Oriented Programs (without code) . Then start learning Kotlin. If you know Java then you can analyse on each steps of your Kotlin learning that how Kotlin is easier and better than Java (Specially for Android).

How did you start with Android app development? I'm trying to get a start myself.

What sort of applications did you build first?

:)

Hi Pawan,
Yes I started with Android app development. You can start building small apps eg. Hello World, Display Login page, Showing list of your friends names, Playing a song for your girlfriend, reminder for you to have lunch, showing your friends list from Facebook friend-list, Login with Google,fb,Twitter. Try with these kind of apps if you dont have a project to work. You will learn to code for Android.
Then creat some Restful API on your local server and get data from that server using retrofit or volley for above examples again.
... And you can visit my github profile to see small project (with code) to learn.

In the process of making an app for Android (regardless the language), what is the most challenging step in that process?

Hi JuankOrtiz.
For me personally,

  • choosing project architecture, mvvm vs mvp vs mvc, is challenging
  • software fragmentation of Android OS is also challenge me for my app development. We need to give support for older APIs to latest one.
  • Some security flaws in Android are also challenging part of app development.

Hey Ankit, What is your opinion about Flutter? Is it better to start using it than Android?

Flutter is a hot topic among the developers. It’s a new mobile app SDK that helps developers and designers build modern mobile apps for iOS and Android (at least according to the official website).
It is an open source project developed mainly by a group of engineers at Google. But it also has external contributors (there were about 130 of them at the time of writing this post). It’s written in Dart language which is also maintained by Google. Of course, I would prefer Kotlin but when Flutter’s development started, Kotlin was not so popular as it is today so Dart seems like a reasonable choice. Having Flutter and Dart in control allowed for creating an awesome tooling and IDE integration. It works seamlessly with IntelliJ and Android Studio.

Something I noticed are

  • Flutter doesn’t support OpenGL yet, so there is no MapView or VideoView.
  • I found out that Flutter can be used as a View on Android and UIView on iOS.
  • No accessibility support.
  • I have great news for you: Flutter supports testing and it’s awesome! You can even write unit tests for UI!

Overall its good to start app development with Flutter.

I would like to discuss more about profile GPU rendering. gpu rendering

Classic DEV Post from May 12

What Developers Should Know from Microsoft Build

We're clearly entering a new era for Microsoft and for developers that moves from tools and platforms to cloud and services.

READ POST
Follow @remotesynth to see more of their posts in your feed.
Ankit Kumar
Kotlin | Rx | Java | Android | IoT| Swift | iOS | Open Source Contributor
Trending on dev.to
Who is hiring? (As of October 2018)
#whoishiring #discuss
I've Built Test Automation for 20 Years, Ask Me Anything!
#ama #testing
I'm a software developer and a meditation teacher - ask me anything!
#ama #productivity #softskills
How to be an awesome open source maintainer?
#discuss #hacktoberfest #opensource
Breaking up with my mouse (Mac edition)
#productivity #webdev
8 things I hate in recruitment letters [add yours, it's kind of research]
#discuss #career #job #productivity
Why "Just Unionize" Doesn't Work
#career #gamedev #computerscience
What types of features typically lead to lots of tech debt?
#discuss