Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I'm studing Uncle Bob Clean Architecture, and trying to get comparasion in many differents aspects about witch design pattern should I use for my IOS/Android Projects.
Ok, I noticed that clean arch is very powerfull and rouboust, but at the same time, in my opinion, is it too much overhead with the number of class and files that I should create.
So my question is, is this design patter more advantageous than use MVC/MVP/MVPC?? Isn't it too much overhead?? Which architecture is it the best for IOS/Android Projects?
I didn't find any good reason yet that justify I change from others design patters to Clean arch, except the fact that UI is totaly isolated from main code.
Adopting a 'Clean' architecture, along with Hexagonal/Ports & Adapters/Onion/Lifesaver/Screaming, does not exclude the use of separated presentation patterns such as MVC.
The original intent of such an approach is to:
Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases (Cockburn, 2005).
If you think your application will benefit from such an approach then I would argue that it's a good approach to follow.
BTW, IMHO, there is no 'best architecture'.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I am new to android. I have already built 80% of my app without following a MVVM pattern or using android architecture components such as View Model, Livedata etc because most of the tutorials didn't follow these patterns. My code just has data models and business logic, data binding on the activity, fragments itself.
Just got confused about the fact that whether is it okay to launch an app in the old school style or I should rework with some architecture pattern?
Its ok to use any pattern you think is best for your app. There are no requirements, technical or policy wise, about how you implement your code. If you feel MVVM is right use it. If you don't, avoid it. Even Google wouldn't claim its the best for every usecase, its just another tool in the box.
Architecture components solve a bunch of complex problems. Among these are:
Code maintainability
App performance
Consistent behavior across devices and versions of Android
That last one is key in my opinion. Rolling your own architecture can lead to bugs as your app gets exposed to more and more devices after release. Devices that you just didn't see during testing.
I would not hold up your app's launch to integrate architecture components, but certainly you should consider refactoring your app where it makes sense as you update it for future releases.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I am just a beginner and at the time of developing i was blind about following an architecture, but now I've come across many awesome architecture and frameworks out there which i can follow to make code clean and easy to maintain.. so I have 3 questions
1) Is it a wise thing to change already developed project to follow a particular structure or framework like MVP and MVVM.
2) If yes for first question, how much time does it take (I know it depends on the project size but still rough estimation)
3) Which architecture would be better suitable to change the structure. (I've already gone through many documents and stack overflow questions of comparison. But here i want to change the whole structure. so which one would be best for this)
1) It'd be better if you stick to one particular architecture from the beginning of developing your application. It's gonna be a tiresome job if you wanna change the architecture, you're gonna have to do it from scratch.
2) It'd probably take as much as time as you did for creating you application with mvc architecture I guess.
3) I'd go for MVP architecture. It's the better alternative to MVVM if you're planning to change from MVC.
If the amount of code you have written is not very large , you can certainly change the structure.
MVP helps you to seperate views from logic and i have found using it to be very helpful when it comes to adding new logic , methods or modifying existing code.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
Recently I stumbled upon a few articles on using the MVP pattern for developing android applications.
I would like to know:
whether it is worth the effort to move towards a MVP pattern, given
that fact the android framework is not inherently designed keeping
MVP in mind whereas iOS development using Swift enforces the MVP
pattern (if I am right).
Is the development time impacted a lot on using MVP?
To answer your points:
MVP is worth the move in the long run - for a new project definitely start using MVP. For an existing codebase, it will be time consuming to untangle the logic in Activities, Fragments etc.
In the short term dev time is impacted as you'll have to learn MVP etc. In the long run, you'll save time bug fixing etc.
Here's a great article on MVP and Android
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am in the first stages of developing a multi-platform mobile application
on (Android,IOS,BlackBerry 10).
It is a book selling application
i do not know if i should use phonegap or build the application for the three platforms independently
what do you guys recommend i should use??
and what are the pros and cons for each approach??
If you care about performance I wouldnt recommend building the application in PhoneGap or Titanium or anything similar.
From personal experience:
PhoneGap is very easy to use/learn and can build good looking UIs very fast. The problem is that is really slow compared to other solutions. You basically build with HTML.
Titanium would result in a faster - more responsive application BUT it would require more coding and tuning. Here you basically build with java script. Also, despite the fact that is universal there might be cases where you would have to build separate code for android and for iOS for example to do the same job.
For best user experience I would recommend (and I think many will agree) going native for each platform and trying to keep a consistent UI.
Also since this is not the first question about the mentioned frameworks please have a look here and on many other questions that compare these frameworks.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I have a relatively simple tkinter program that just uses Event, Button and Label objects. I would like to translate this to be usable on an android platform.
1) What python for android should I use? QPython, py4a?
2) And on that platform, what GUI module should I use?
I'd like a little bit of detail for why you think a specific module or app would be best, as I'm just getting into the android scene and want to make an intelligent jump.
Even for native purposes, most developers would advise you keep away from Tkinter. It's a dated and unintuitive library that often makes GUI creation and maintenance harder than it needs to be.
The main advantage of developing apps using a Python library and embedding in Android is cross-platform support.
These libraries will often allow you to port your app with ease to many different operating systems.
I will not answer which is "best" since this is an opinion-based question outside the scope of StackOverflow, however I will say it is (generally) easier to port from Kivy to android than it is in some other libraries (such as Qt). But take this with a grain of salt.
Most libraries nowadays offer advanced GUI capabilities built-in, and your choice will likely not limit you in that regard.
Either way, there is no direct/simple way to translate your Tkinter project to any of these, and you will likely have to rewrite it with the library you end up choosing.
I will add that if your intent is developing only for android, most would advise developing in a native Android language, such as Java or Kotlin, or using a development tool which makes use of such languages. This would result in smaller APK sizes and likely faster running times for your app.