About IDoCare project:
As I promised in the post discussing the future of TechYourChance blog, we are open-sourcing IDoCare application for Android.
This application, together with the entire IDoCare project, was born after a friend of mine had this interesting (some people use words like “crazy” and “naive”) idea that the world needs an “environmental social network”. This network would allow regular people to connect and collaborate in order to resolve environmental issues. The first issue that we decided to tackle is pollution and trash in our own neighborhoods.
I was unemployed then, and the idea resonated with me. Therefore, I took a responsibility of developing a client application for Android phones. Except for taking several software engineering courses at university I had not had much object oriented coding experience when I started developing the application, but I learned. A lot.
IDoCare was the first Android application that I worked on, but it literally changed my life – I decided to become a professional Android developer.
The pace of IDoCare project is not that fast (to say the least), and it will probably take years before it could make a real impact. But even if we are still far from our goal, I think that the project could be of interest to the community from technological point of view.
IDoCare application for Android:
As I said, IDoCare application was the first Android application I worked on. As such, most of the code that was written during its development doesn’t stand up to the quality standards I’m expecting from myself today. And even though I’m constantly refactoring and cleaning the code, there are still much code there that was written by a newbie developer. Keep that in mind.
On the other hand, there are some parts of the application that I find sufficiently well designed and implemented.
There are two main reason for open-sourcing IDoCare application:
- Use IDoCare as a tutorial code for posts on this blog (such that I won’t need to write tutorial applications)
- Show how the ideas presented in this blog integrate into a real application of a considerable size
The last point is especially important from my point of view. I believe that professional software engineers must prepare and review Proof Of Concept (POC) implementations of new ideas before allowing them to be implemented in production code. I hope that IDoCare application will become such a POC for the readers of the blog, and they will feel more confident to take the ideas presented here into their own production code.
As of time of this writing, IDoCare application already integrate ideas from the following posts:
- Why Activities in Android are not UI Elements
- MVP and MVC Architectures in Android
- Dependency Injection in Android
- No more Casting of Android Views in 3 Lines of Code
So, if you though that the ideas presented in this blog are interesting, but haven’t had time to invest into POCs – take a look at the source code of IDoCare and see how these ideas integrate into real application.
3 comments on "Open Sourcing IDoCare Application"
Thank you for doing.Great blog!
After I have finished your course on android architecture, I started implementing your ideas to my project and things are great. I began to check out your IDoCare application (prior from knowing this post) because I needed a way to manage dialog fragments that I can confidently use through out my application. After going through your Dialog implementations, I feel there is another lack of theory to understand it all (perhaps the event bus architecture), can you please use the dialog implement that you have in your IDoCare app and write a blog describing how you implemented the way you did and how it ties back to Mvx?
Indeed, I find the approach to dialogs that I use quite convenient. That’s why I extracted it into a standalone library called DialogHelper.
I’ll write a post announcing this library sometime in the future (once I’ve got a bit of time), but you can already start using it. You can review library’s sample app’s code to get the general idea.
Event bus is not mandatory for working with dialogs, but I find it useful for this purpose. It’s quite simple and elegant library that has a good documentation, so I’m confident that you’ll be able to learn it by yourself.