A couple months ago I started InstaMaterial series. The goal was simple – to prove that it is pretty straightforward to implement all those fancy animations and UI effects showed in Material Design guidelines. Now it becomes even easier – Google gave us Android Design Support Library which provides all the most important UI elements introduced in Material Design. In this post I’d like to update InstaMaterial source code from custom views implementations to those provided by this library. Continue reading “InstaMaterial meets Design Support Library”
This post is a part of series of posts showing Dependency Injection with Dagger 2 framework in Android. Today I’m going to spend some time with custom scopes – functionality which can be a bit problematic for Dependency Injection beginners. Continue reading “Dependency injection with Dagger 2 – Custom scopes”
This post is a part of series of posts showing Dependency Injection in Android with Dagger 2. Today I’d like to delve into a fundamentals of Dagger 2 and go through a whole API of this Dependency Injection framework. Continue reading “Dependency injection with Dagger 2 – the API”
Some time ago, at Google I/O 2015 Extended in Tech Space in Cracow I had a presentation about dependency injection with Dagger 2. In a time of preparation I realized that there is a lot of things to talk about and there is no chance to cover everything in dozen of slides. But it could be a good entry point to start the new series of posts – Dependency Injection in Android. Continue reading “Dependency injection with Dagger 2 – Introduction to DI”
Dependency injection frameworks in Android – is there anyone who has never heard about it? At almost every Android dev conference someone talks about this software design pattern. I am a big fan of DI but there are also people who complain about it. The main reasons why they do this are:
- dependency injection frameworks are slow – well, it was completely true a couple years ago in times of RoboGuice, when the whole dependency graph were created and validated in runtime. Now, when we have Dagger it’s not (completely) true. In Dagger 1 much of work (graph validation) is done in compilation time and objects creation process is done without reflection (it’s worth mentioning that recently presented Roboguice 3 also does much of his work in compile-time). Yes, it’s still a bit slower than hand-written code, but in average Android app it is almost imperceptible.
- DI frameworks requires a lot of boilerplate – it is true and it isn’t. Yes, we have to create additional code for injections, classes which provides dependencies etc. but thanks to them we don’t have to deal with objects constructors every time when we need them. Yes, in small projects DI frameworks are overkill, but benefits of dependency injection increase when you start dealing with scale.
- Other stuff like poor traceability, hard to read generated code etc.
This is just a summary of series of posts showing Android implementation of INSTAGRAM with Material Design concept. If you read previous posts about InstaMaterial project, you can skip this one.
A couple months ago I started to work on project which implements almost all visual effects showed in the video created by designer Emmanuel Pacamalan. This video presents new Google design guidelines – Material Design. Everything looked great, but some people started to worry about the bigges problem of Android platform – fragmentation. Material Design was presented with the newest Android system – 5.0 Lollipop which adoption rate looks like below:
Still less than 5% at this moment (first half of March 2015). Not so good, right? Continue reading “Instagram with Material Design concept is getting real – The Summary”
This post is the last part of a series of posts showing Android implementation of INSTAGRAM with Material Design concept. Today we’ll finally finish our project by creating the last elements –
SendingProgressView. This functionality is presented between the 41st and 49th second of the concept video.
APK file which has been built from code described in today’s post is available here. Yes, this is the final version of InstaMaterial. 😄
Here is the final effect implemented in this post (video which presents the whole project will be shown in next, the summary post):
This post is a part of a series of posts showing Android implementation of INSTAGRAM with Material Design concept. Today we’ll create flow for photo capturing. This functionality is presented between the 38th and 41st second of the concept video. We’ll omit some details (like FAB button animation, colors, icons) because of a little more work with camera implementation. We’ll back to them in next (probably the last) post of series.
According to previous post, I have to mention that InstaMaterial application has been removed from Google Play Store because of violation of the intellectual property. I fully undertand this reason and in close future I’ll probably prepare version with different layout which is completely different from Instagram application (but still has all features presented in concept video).
APK file built from code described in today’s post is available here.
This post is a part of a series of posts showing Android implementation of INSTAGRAM with Material Design concept. Today we’ll create Navigation Drawer – left sliding panel which shows global application menu. This element is presented between the 32nd and 35th second of the concept video.
Also we’ll create DrawerLayoutInstaller – simple tool for injecting DrawerLayout into Activity layout without messing with xml file.
This post is a part of a series of posts showing Android implementation of INSTAGRAM with Material Design concept. Today we’ll create user profile presented between the 29th and 33rd second of the concept video.
This is the final effect described in today’s post (for both Android Lollipop and pre-21 versions):