how to change the structure of already developed android project? [closed] - 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 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.

Related

Best practice for working on an android library [closed]

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 14 days ago.
Improve this question
We have some Android Applications which share data models and other stuff. So my plan was to make a library for that which can be easily extended and implemented in these Apps and maybe also in future Apps.
What is the best approach for that?
For just testing around, I implemented a module to one of the Apps. But this has the problem that it is bound to this single project and its version control which makes it a pain in the b_ to maintain. Also its not practicable to work on because everyone has to have and work on this App project for library changes.
My thoughts were to separate them but how? I have researched alot and didnt find a way to create a standalone library. The only way Ive found so far was to create a whole new Android Project and manage the library in it and seperate it from the :app Module. I dont know but this doesnt feels straight forward.
What is a good way to manage a library which has its own version control and can be easily maintained from everyone? Is the own Android Project the way to go?
You can still setup a separated VCS for a module and maintain it in another repository. git-submodules is a way around it.
As you've mentioned, another approach is to create a new Android project for the library and distribute it separately. It's very straitforward way, but it's simple less error prone.

Which is best way to design UI for android (Coding or Drag & Drop)? [closed]

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 2 years ago.
Improve this question
I'm learning Android development in Android Studio. My question is that what is the best way to make UI for Android apps. I'm right now learning coding to make the UI of apps. It's a hard or time-consuming process but I find that this is another way to create UI of Android apps via the drag or drop feature. So, I want to ask which one should I choose to create UI of apps ?? because I want to work as an Android Develper.
Thanks yo
Drag and drop are useful when you don't have to make a good/presentable UI, You are just in hurry to check/test something. But for long term or to make reliable UI, I'd suggest you go with writing code in XML. This helps you understand the concept of how things stick to each other and you can make changes easily when needed. All the best.
Try Constraint Layout ,It's very flexible and will help you understand the concept of constraints.
If you want to become an Android developer, you have to practice a lot, the drag and drop feature on the xml layout design is very useful, but it would be nice if you also have to master the attributes and components in the Android layout. It depends on usage, but I would rather write the xml code directly to better understand the points of layout on Android. Keep learning and keep up spirit

Do I really need to learn xml for android development? [closed]

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 3 years ago.
Improve this question
I am a Python programmer and I want to learn android app development. My million dollar question is, do I really need to learn xml? Can't I just use the design tab in android studio and drag n drop elements to make the design?
Well well it should be noted that whether any technology is used in certain IDE it would be good to have some background knowledge or at least know what is it for..
Overall is not hard to learn XML at a functional level.
What is it?
A Xtensinve Markup Language which basically work with tags, it was created for be self-descriptive.
<deliveryTag>
<to>Michelle Obama</to>
<from>Barack Obama</from>
<note>Happy Birthday!</note>
<type>First Class</type>
<package>Regular Size Box</package>
</deliveryTag>
What is it for?
Designed for carry data, and have it well-organized of course.
People really loved how it simplifies the data sharing, transport and availability eventually it became one of the standards cross-platform.
Finally..
XML was designed to carry data -> it focus on what data is.
HTML was designed to display data -> it focus on how data looks
Both of above are NOT programming languages but languages for structuration.
You will have more control over your project even if you drag and drop, at some point you will note that Android Studio demands to fluently use XML in many parts of the software development cycle.
Yes you can just use drag and drop editor, all attributes can change there, but when u face with an issue, you can't find your answers in Here because all of android developers work with xml.
It's too easy to learn, don't afraid of it.
You can use the design tab for constructing the application UI, But for complex design, it's not advisable.

Is it necessary to use MVVM pattern or architecture components in android for beginners in android? [closed]

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.

Clean Architecture Vs MVPC/MVC/MVP [closed]

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'.

Categories

Resources