Hello everyone,
I am Vishwajeet, a final year undergrad CSE student from India with 2+
years of android development experience.
I am a Google Summer of Code'16 participant, worked on the self-service
https://github.com/openMF/self-service-app android application with Mifos
Initiative. I have worked with several startups as well as an individual
contractor on various android applications. I have been contributing to
open source projects for more than a year to organizations such as Mifos
Initiative, FOSSASIA, openMRS, etc. I have myself open sourced more than
dozen small/large projects, primarily on android.
I am following some previous threads in the community which are regarding
two most important discussions namely *Testing and UI refactoring *of ODK
collect application.
I am reading the source code of the application and tried hands on the
application itself. I want to give my suggestions on the same:
- Since we all are on the same page regarding the UI refactoring of an
application using Material design principals to overhaul the existing
application, I would suggest refactoring the existing codebase as well
following SOLID principals and some Clean architecture pattern such
as Model-View-Presenter
https://en.wikipedia.org/wiki/Model–view–presenter.
- There are various other types of architecture patterns as well but MVP
provides the maximum amount of flexibility and keep the codebase segregated
in forms of various Interfaces. Many famous android applications are
already following MVP pattern as it helps in making codebase scalable with
high code coverage.
- Another benefit of MVP pattern is that it will make testing very easy
(especially helps in mocking android objects) which is one very important
thing to be done as part of ODK collect application.
- Another important aspect is that application is still using older
networking ways to retrieve and send data, IMHO it would be great to use
third party library such as *Retrofit *by Square. We can also use
ButterKnife to increase our code quality. In case we go with a pattern such
as MVP then *Dagger 2 *would be an excellent choice as well.
- Code refactoring will also increase our gradle build speed as the
current code base is already significantly large.
I have personally implemented the Self-Service android application using
MVP architecture pattern from scratch. I have also given a talk over the
same in GDG DevFest and will be speaking about MVP in upcoming DroidCon
Vietnam.
I am interested in working on this exciting and important project as part
of GSoC'17.
Hopefully, some of my suggestions will be worthy to discuss further. Let me
know your thoughts on the same.
I am attaching links to my personal portfolios.
Regards,
Vishwajeet Srivastava
*LinkedIn: *https://www.linkedin.com/in/vishwajeet-srivastava
*GitHub: *https://github.com/vjs3
*Blog: *http://vishwajeetsrivastava.com
*Twitter: *https://twitter.com/vishwajeets3
Hi Vishwajeet,
Be sure to join the #gsoc channel in the Slack
(http://slack.opendatakit.org) and meet your fellow students there!
As to your project ideas, please see
https://github.com/opendatakit/collect/issues/392 and add your ideas
there!
Thanks
Yaw
···
On Sun, Mar 5, 2017 at 12:03 PM, Vishwajeet Srivastava wrote:
> Hello everyone,
>
> I am Vishwajeet, a final year undergrad CSE student from India with 2+ years
> of android development experience.
>
> I am a Google Summer of Code'16 participant, worked on the self-service
> android application with Mifos Initiative. I have worked with several
> startups as well as an individual contractor on various android
> applications. I have been contributing to open source projects for more than
> a year to organizations such as Mifos Initiative, FOSSASIA, openMRS, etc. I
> have myself open sourced more than dozen small/large projects, primarily on
> android.
>
> I am following some previous threads in the community which are regarding
> two most important discussions namely Testing and UI refactoring of ODK
> collect application.
>
> I am reading the source code of the application and tried hands on the
> application itself. I want to give my suggestions on the same:
>
> Since we all are on the same page regarding the UI refactoring of an
> application using Material design principals to overhaul the existing
> application, I would suggest refactoring the existing codebase as well
> following SOLID principals and some Clean architecture pattern such as
> Model-View-Presenter.
> There are various other types of architecture patterns as well but MVP
> provides the maximum amount of flexibility and keep the codebase segregated
> in forms of various Interfaces. Many famous android applications are already
> following MVP pattern as it helps in making codebase scalable with high code
> coverage.
> Another benefit of MVP pattern is that it will make testing very easy
> (especially helps in mocking android objects) which is one very important
> thing to be done as part of ODK collect application.
> Another important aspect is that application is still using older networking
> ways to retrieve and send data, IMHO it would be great to use third party
> library such as Retrofit by Square. We can also use ButterKnife to increase
> our code quality. In case we go with a pattern such as MVP then Dagger 2
> would be an excellent choice as well.
> Code refactoring will also increase our gradle build speed as the current
> code base is already significantly large.
>
> I have personally implemented the Self-Service android application using MVP
> architecture pattern from scratch. I have also given a talk over the same in
> GDG DevFest and will be speaking about MVP in upcoming DroidCon Vietnam.
>
> I am interested in working on this exciting and important project as part of
> GSoC'17.
>
> Hopefully, some of my suggestions will be worthy to discuss further. Let me
> know your thoughts on the same.
>
> I am attaching links to my personal portfolios.
>
> Regards,
> Vishwajeet Srivastava
>
> LinkedIn: https://www.linkedin.com/in/vishwajeet-srivastava
> GitHub: https://github.com/vjs3
> Blog: http://vishwajeetsrivastava.com
> Twitter: https://twitter.com/vishwajeets3
>
> --
> You received this message because you are subscribed to the Google Groups
> "ODK Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to opendatakit-developers+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.