Project/versioning software - what's most commonly used for mobile/android? - android

Just curious whether folks still use CVS or if there are other versioning programs out there these days. Been out of software development for a few years and just kind of have the itch to play around a bit with some mobile development. I'd like something that I can share with at least one other remotely-located developer. Is there an industry standard or a particular program that most folks doing android development use?
Thanks!
Steve

CVS? Ancient history. It's either Subversion or Git these days. The type of development seems immaterial to where you archive it.

I use Mercurial (hg) DVCS to manage my projects (not just for Java, but also C and Python).
IMHO Mercurial is quite a modern VCS with very good support for merging (it has to since it is a DVCS).
If you are going to be working in parallel and doing lots of merges I'd recommend Mercurial.

If you are going to contribute to Android, you want to use git. Google has a layer on top of it called repo, which does a good job of dealing with the problem space they are dealing with.
If your last exposure was CVS, however, you may find that git is so much more powerful that it becomes confusing. hg is very good alternative. If you have a project which you are sure will never branch, and you need it to be PHB friendly, I recommend SVN.

Related

alternative to git-repo ( aosp repo )

I have recently started to look into android development (aosp) and read about "repo" tool/wrapper that takes care of all the android's sub projects .
While I think repo does a fairly good job at what it does, I wanted to know if there are any alternatives to it.
I thought git submodules are sufficient for this but many posts on internet discourage use of submodules ( due to some "drawbacks" which I feel are not drawbacks at all ).
Keeping in mind that the source code for different sub projects should have their own releases or indipendednt code bases I am not sure if git subtree is a good solution for this.
It would be great if someone can point out some alternatives to repo or any other information about this.
The repo tool is the standard way to work with AOSP code base. Sure you can manually manage the repos yourself but that is going to be rather tiresome and error prone.
Otherwise using submodules or subtrees won't let you inter-operate with Google and everyone else working on the AOSP codebase, so unless you are planning to do a one-way fork of AOSP there are no alternatives to the repo tool for working on AOSP.
repo has one huge disadvantage: it detaches HEADs. You can't switch to specific branch under specific subrepo. Unless you do repo start
tsrc, as far as I know, has less functionality but doesn't have this specific problem.
Also, you can use embedded mechanisms of build systems like Bazel (git_repository/new_git_repository).

Android programming and frameworks / IDEs to use?

I'm quite new to Android programming, I'm mainly a .NET guy =)
I've done several projects in Windows Phone, and I feel pretty comfortable with the MVVM pattern, C# and so on
However, I want to get into Android development, because it's an important platform
I wanted to know what's the best free approach where I can reuse some of my skills to reduce the learning curve
I've been investigating and I saw several options..
Xamarin seems like the best of everything, were you can use cross platform code using visual studio. This is great, but you have to pay to use it (even if I use the free version, I may want to publish some apps later, but don't want to spend that amount of money just to do a couple of apps on my own). So I'd say it's out of the queestion
I've seen something called MVVM Cross, however I don't know if that requires Xamarin or something else to work?
If I use pure android development frameworks, what's recommended? I've tried Android Studio, which is not that bad as eclipse, but compared to visual studio it has a long way to go. However it seems that the only way to use visual studio and android is to use xamarin..
Also, is there any approach to android programming that's the best? (as MVVM is the best for windows phone apps and the pattern embraced my microsoft)
Thanks!
I'm not sure it's a suitable question for SO...
Anyway, here is my opinion regarding the IDE.
Eclipse + ADT-plugin was the "official" IDE supported by Google. But Google decide to develop an other solution based on IntelliJ : Android-Studio.
So Eclipse is the legacy IDE and not the best choice if you are new to Android development.
On the other hand, Android-Studio is still in early development stage. I tried it a few weeks ago and in my opinion and for my use case (quite huge multi-module project) there was too many issues to work efficiently with it in it's current state.
Third option: IntelliJ-12 (free edition) is my current choice. It offers a smooth integration with android tools. It is stable. The UI is very similar to Android-Studio (and so switching to Android-Studio when it will be ready will be an easy step).
This is an other alternative for crossplatform app making:
www.phonegap.com
I don't know how relevant this is to your Question,

Github service hook for community translation webservice

I am taking care of an open source project: mixare. It's an augmented reality browser released under the GPLv3.
The source code of the project is on github and I would like to hook the localization part to some web-service a-la pootle. If necessary I can install my own instance of a translation service on our server, but also an hosted solution would be fine. So I would like to know:
Is there a preferred translation web service that syncs using github's service hooks? Any best practice to share?
Thanks a lot!
Git integration is one of major reasons why I started to write Weblate. It also supports remote trigger for git pull using URL, so it nicely integrates with Github (you just need to put the URL there).
PS: I've just noticed that Android string resources are not supported by backend I use for loading translations (translate toolkit), so it probably won't work for you...
While I appreciate your wish for git support, shouldn't you primarily be looking for a solution that will give you many and good translations?
To get many translations I'd recommend Translatewiki, unfortunately their manual setup takes some time though.
Apart from Translatewiki, transifex seems to be one of the better and not least bigger (counting translators) services. They've made their own client that take care of importing and merging translations. For gettext translations it can also pull in updated template (pot) files automatically from github, I don't know if that's also possible with Android style translations.
Both Translatewiki and Transifex are 100% free and open source software.
I've been through the same "nothing good out there" phase, so I've started writing my own, as a symfony2 bundle. Maybe it's of use to you: https://github.com/tvogt/translator-bundle
Why? Because I couldn't get weblate or pootle to work, you probably have to be familiar with all the pip and python and ve and whatever stuff. Translatewiki is only for free software. Transifix is commercial.
In 2020, with GitHub Actions (hooks executed on GitHub side), you now have GitLocalize
GitLocalize is a continuous localization tool built for communities and teams that want to simplify their workflow when translating their content.
GitLocalize automatically keeps translations up to date by syncing with your repository.
That won't apply to the OP's project github.com/mixare/mixare, which was moved to GitLab in 2018.
But it can help other projects with a similar need.
You can have a look at Amanuens - it's able to sync with any Git repository, including Github. It's totally free for open-source projects (contact support for details). Disclaimer: it is my company's service.

How to backup relevant files?

My app is getting to the point where I will be highly perturbed if I lose the source somehow. This is a personal / single developer project, so something like Subversion might be overkill. I'm thinking more along the lines of the "Backup" agent that is a part of the GExperts add-on in the Delphi world. Is there such a thing (that would backup all the .java, .xml, sqlite, etc. files) specifically for or suitable for the Android platform?
In my opinion using a version controll system is not overkill at all. You can keep hand on changes all the time. Making features that you don't even know whether to include or not into main branch. Not only features but every complicated task also, for example refactoring. With VCS that's no problem to make fast fix to released product during development of a huge task which is incomplete.
I can't imagine working without any VCS. I prefer Git because is fast and easy.

Is Titanium 1.8 finally free from the memory starvation issue from release 1.6 and 1.7

Hi there Im new to mobile application development. I had developed Android apps using Java and is just starting to get the hang of Cocoa Touch and Objective C. Now I am curious on mobile web application development to create cross platform/device applications which would at least run on Android and iOS(Apple devices: iphone, ipad). I tried Titanium and developing applications with this framework seems very promising. Although it is very powerful, popular, mature, documented and very easy to learn I had doubts investing time and to commit on using this framework for my projects after reading this blog which many Titanium users seems to agree with Why you should stay away from appcelerators titanium.
It seems that release v1.6 sdk and v1.7 sdk have the issue which they describe, the negative comments stopped right after the v1.8 sdk release was out.
My question is, is Titanium v1.8 sdk free from the memory starvation issue and other issues which were discussed on the blog post?
Would you personally recommend this for production use? And by the way I am using the 1.0.7.201112152014 Titanium build does this use the 1.8 sdk? Thanks in advance.
Take a close look at the progress of comments. It starts from people agreeing with him, and in the end everyone disagrees.
You can select the SDK you wish in the tiapp.xml editor, which is embedded in Titanium Studio. You should indeed use 1.8.x
The platform isn't, and probably never will be, memory issue free. But it also depends on how you build your app.
Stay away as much as you can from includes. And also stay away from creating a window/view/etc. with a file as url in it, this causes most memory issues because it's in a different space.
If you code well, you can use it perfectly without any issues.
Blog post author here. I don't fully agree with Topener - go ahead and read the comments yourself, it's just not true that "in the end everyone disagrees".
For what's worth: my experience is related to version 1.6.2. I've talked to people working with trunk and they told me that the memory issues are far from being resolved.
The only approach that seems to work is, as mentioned in the comments, the Tweetanium approach. But beware, that's not "if you code well". It's "if you code the way Titanium likes". If you take a look at Tweetanium (I suggest you to do it no matter what you decide to do in the end) you'll see that it has a very specific way to deal with architecture. If you follow that path, you should be good. If you think that the way Tweetanium is structured is good for you application, go for it. Be wary though, because (at least in what I consider to be complex) Tweetanium is not very complex, and with growing complexity I found that their approach is difficult to maintain. Again, evaluate for yourself.
Then there's the Android issue. Android support is far from optimal - Wunderlist decided to rewrite their Android version in native, I myself have had huge problems in making anything even remotely complex in iOS working decently on Android. If you need to support only iOS it's alright but, if that's the case, I don't see why you shouldn't write the app directly in Objective-C... considering also the (unavoidable) delay/mismatch between the Titanium and the iOS SDK.
Just my 2c. I suggest you not to take the decision lightly - it costed us a lot.

Categories

Resources