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 8 years ago.
Improve this question
I already have a running prototype of my iOS app build using Apache Cordova, and I'm planning on using the same codebase for Android.
Should I fork the iOS repository and start customizing Android?
or
Should I keep Android related changes as a separate branch of the same repository?
What's are some of the best practices that are followed, and why?
If you want to re-use part of the code base, you could just add a directory for the Android specific code in your master branch.
If you'd rather have components, you could put the common code base in its own repo, produce a library (eg: a maven package that you would publish on an internal maven repo), and have an iOS repo and an Android repo, both of which would reference this library.
However, unless you have a very large codebase (or unless you don't plan to make modifications in this common codebase), I wouldn't recommend the library-approach, since it can become a pain to add and test a minor patch in the common code base.
Regarding the approaches you proposed:
a fork and a separate branch are more or less the same anyway (instead of having a branch android, you would have a branch fork/master)
With an android and an iOS branches, changing the common codebase would require an extra merge that you wouldn't need with a single branch. And you have the risk of a desynchronisation of this common code base between your branches if you don't have a strict workflow
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 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.
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
Some friends of mine and I are developing an App as a school project in Android Studio because the only language we currently speak is Java, and we don't know how to work as Team e.g. How do we share the code with all of us, or if we shall do it with GitHub how does that work too? We have little experience in these things and would appreciate it a lot if you could help me what we could do and what is the best way to proceed
You need a distributed version control system.
The most common version control system is git, but svn and mercurial also exist.
Then the version control system needs a centralized way to distribute the latest changes to everybody. The most common is Github; there is also Bitbucket and Gitlab.
Since you ask very general questions, I think the easier way would be using Github because it is the most common, and it integrates fairly easily with Android Studio. Even when solving differences between files (conflicts), Android Studio offers some handy dandy dialogs to ease the editions.
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'.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I want to know what are pros and cons for using external libraries like these in application development.
It is possible using these libraries application may run well on one device but may not run on any other device, application performance, size of apk using these library?
And which one is good idea while developing application in Android studio to copy file in libs folder or add it in dependencies and stay connected to internet.
It's hard to tell the pros and cons when using an external library in Android app development. Most of the time, it depends on the real circumstance. If the library simplify your app development and it's specially optimized for Android, it's worth to try.
When it comes performance about external library, the document says we should be careful.
As put libraries in libs directory or referencing them from mavencenter/jcenter repository, the result is the same. It will be compiled to your app by android app tools finally. In order to simplify your life, referencing the libraries from an internet repository is a better choice. You don't have to worry the version and dependencies. Android studio now has adopted this way.
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 8 years ago.
Improve this question
I am about to open source android library project and wonder about what are the best practices how to release it on the github in structure way. Currently both are separate projects in local workspace (one library and other app project using it as library). I came across two approaches
Release both library + sample app + metadata within the same repo.
Release library and sample app as different repos
I wonder what is the local structure (on eclipse, on folder base) to use first approach combining app + library on same repo.
Edit : Library here https://github.com/burakdd/windigo
This is really an opinion. Everyone will tell you something different. I would look at your application and try to split it up into it's major components. If you want to put two projects in your repo just make sure that the two project folders (outside of eclipse) are in the same folder as the git repository. You will have to reimport the one that you moved back into eclipse, but they will still be two separate projects.