What would you improve in Android dev tooling? - IDEs, Libraries, & Programming Tools

I'm a senior engineer on the Visual Studio team at Microsoft. I'm not a marketing guy or recruiter.
I’m looking to talk to Android native app developers like yourself to understand experiences and pain points. That would help us figure out potential tools/features we could build to make your life easier. Would you be willing to spend 30 minutes on the phone with me?
Since I build development tools for building Android and iOS apps, I'll be also looking forward to answering questions you may have.
Help shape the future of Android dev tooling! PM me if you're up for chatting and I'll setup a call.
Thanks very much,
Bret

Can't help with a phone call, but the number one pain point in Android development is the build tool chain. Working together with Gradle Inc. and the Android folks to improve this would go a long way to eleviate the pain. The worst part atm are build times and the lack of proper incremental tooling.
Another pain point is Java 8 compatibility. There's retrolambda giving us lambdas (and limited default methods), but all the Java 8 APIs are missing. I understand if MS doesn't want to touch that topic though
You already did quite a nice job on emulator performance with your custom emu in Visual Studio

I also can't help with a phone call. If you want info/ideas, do it online in this or other forums.
I use Android NDK low level C code a lot.
NDK integration with Android Studio still sucks.
If you have something like NDK/NativeDevKit integrate it well.

Related

Ventrilo on Android - Let's make it happen!

Greetings!
My name is Daniel Sloof and together with a group of volunteers we have recently been working on a project called Mangler: a Ventrilo compatible client for linux. Mangler is driven by a C library called libventrilo3 and over the past couple of weeks I have been working on making this library compile with the Android-NDK. I am currently succesfully able to build libventrilo3 as a native library that can be used in Android applications. The JNI wrappers are a little lackluster, but they are being worked on.
The main reason for me posting on this forum (amongst others) is because I am looking for skilled Android/Java developers to assist us in working on this open-source project. We're mostly C programmers that have very little Android experience. I expect we could have something functional up within the month, most of the work has already been done: we're pretty much just writing a GUI for an existing backend (and some audio stuff, which is just feeding PCM to one of the native functions).
Thanks for reading! If by this point you're interested in participating or have any specific questions you can just post them here or drop by on IRC. You can find me on freenode #mangler (alias: danslo).
Im so excited for this project! I hope this goes well.
Time for an update and a quick *bump*.
More progress has been made making libventrilo suitable for Android usage. This primarily involves audio stuff, such as upsampling to rates that Android's AudioRecord doesn't support. Buffering in the Android App is still required but this can be done with minimal effort. Of course all of this (and future) progress can be found on our website.
There have also been some android developers peaking around in the IRC channel but no active developer has yet been found, feel free to drop by.
(PS: To moderators: I am cross-posting this on several Android Forums. If this is considered spam, please feel free to take appropriate measures.)
What is your website, I'd like to track your progress.
tridge said:
What is your website, I'd like to track your progress.
Click to expand...
Click to collapse
To prevent spam to the forums, new users are not permitted to post outside links in their messages. All new user accounts will be verified by moderators before this restriction is removed.
Click to expand...
Click to collapse
You can find us at mangler (dot) org though
<-- so happy to see this!~!!
*bump* - still looking for developers
Bump & small update!
I've just managed to record audio on my android device and send it to our ventrilo test server. Even with just 8khz quality (for testing purposes) the transmission sounds loud and clear on my ventrilo client! There is a small bit of delay but that doesn't seem to be caused by either the connection or the speed of the device (HTC Magic); it can probably be fixed with relative ease.
That being said, looks like we've found an Android developer willing to work on the project, but nothing is for certain so we're still looking for decent Java/Android developers to help out.
And up up we go!
Current revision in our repository can now play received audio transmissions! Once that is worked out nicely, all we'll really need is a decent GUI and some minor modifications (process more library events, etc) and we're good to go.
That spot for Android/Java developer is still available
danslo said:
And up up we go!
Current revision in our repository can now play received audio transmissions! Once that is worked out nicely, all we'll really need is a decent GUI and some minor modifications (process more library events, etc) and we're good to go.
That spot for Android/Java developer is still available
Click to expand...
Click to collapse
Way to go keep up the good work, can't wait to give it a whirl.
People dont seem to understand the potential of this, what a shame. there should be 100 guys clamoring to do this. if i coded i would be all over this.
Looking forward to seeing what comes of this!
xanaviarai said:
People dont seem to understand the potential of this, what a shame. there should be 100 guys clamoring to do this. if i coded i would be all over this.
Click to expand...
Click to collapse
Unfortunately those are the responses we get most of the time Thanks for the support!
I noticed on your website that you recommend Mumble, which I've been a huge fan and contributor since 2007. Any reason not to make Mumble for Android? It's my #1 most wanted app (I've got money on it) and I've heard from quite a few other people who want it, but hardly anyone with the skills/resources to make it happen. Then again it looks like you're in a similar situation, yet still the most qualified.
Pilot_51 said:
I noticed on your website that you recommend Mumble, which I've been a huge fan and contributor since 2007. Any reason not to make Mumble for Android? It's my #1 most wanted app (I've got money on it) and I've heard from quite a few other people who want it, but hardly anyone with the skills/resources to make it happen. Then again it looks like you're in a similar situation, yet still the most qualified.
Click to expand...
Click to collapse
Several reasons:
1) I've never worked on Mumble. (I am very familiar with the ventrilo protocol and written quite a chunk of our ventrilo library)
2) It's written in C++, which is not by default supported by the Android NDK. (unlike libventrilo3 which is written in plain C)
3) Mangler seperates a ventrilo library from its GUI interface, which makes it easy to write seperate interfaces to the same library. As far as I know this is not the case with Mumble.
Don't get me wrong, I (we?) think that Mumble is one of the better alternatives for desktop environments.. but Android places some restrictions that are difficult to overcome with the way Mumble was designed.
I hope that answers your question.
Fair enough. I will continue my search.
As I hear from some developers in the Mumble community, the main limitation is the lack of Qt support for Android, but there may be a way to work around the need for Qt. I'm not a programmer (I hope eventually), so I wouldn't know how difficult such a task would be by any standard.
Pilot_51 said:
Fair enough. I will continue my search.
As I hear from some developers in the Mumble community, the main limitation is the lack of Qt support for Android, but there may be a way to work around the need for Qt. I'm not a programmer (I hope eventually), so I wouldn't know how difficult such a task would be by any standard.
Click to expand...
Click to collapse
There's pretty much a lack of any GUI toolkit on Android (that includes Qt, but also Gtk, wxWidgets, etc). You are pretty much confined to writing it in Java with the Android SDK. Which isn't really a big issue; you want your stuff to feel like -actual- android apps anyway. The real problem with Mumble integration is the Android NDK's lack of proper (official) C++ support and a way of interfacing with the Mumble network protocol without touching any of the audio/gui stuff.
Pilot_51 said:
Fair enough. I will continue my search.
As I hear from some developers in the Mumble community, the main limitation is the lack of Qt support for Android, but there may be a way to work around the need for Qt. I'm not a programmer (I hope eventually), so I wouldn't know how difficult such a task would be by any standard.
Click to expand...
Click to collapse
There is a Qt port for Android underway, so this might help the port once it gets completed.
I've gone off-topic for long enough, but couldn't resist to post. Some dude named pcgod in our mangler IRC channel is working on a Mumble port for Android.. Git repository can be found here:
http://github.com/pcgod/mumble-android
In regards to Mangler... only thing we really still need is a GUI.
Checking out the svn of the project it seems that some work has already been done. Do you only need the GUI now? or the audio stuff too like you wrote in your first post?
EDIT: I just tried it, it manages to login and I can see that there are some users in the test server but how do I start a conversation?

I want to be an Android developer when I grow up.

I want to focus on developing GUIs but I'm not sure where to start. I just read through a few pages of http://source.android.com/ to get more information and it was helpful but I'm still not sure what my skill set should be. I also went through Google's new App inventor and finished all the tutorials but it still seems like a toy.
I can: design interfaces, code javascript, implement XML (weak on C and Java but I get it), create anything using photoshop or any graphic application, color-coordinate, test and implement and write--I can write technical instructions fairly well.
So... that said, what's a typical Android designer's skill-set?
Thanks.
Patience, mellowness and a strong constitution!
The Android development platforms so far available are pretty poor if you're used to something like Visual Studio. The best option seems to be Eclipse running the Android ADT plugin. There is plenty of documentation about how to get it all up and running and it is quite easy to install and configure. The app inventor is a toy for non-developers to create simple applications and it works well for what it is but as soon as you want more complex UIs or more complex code, especially when it comes to using external libraries, you will need to get into Eclipse.
You have the right skills, in fact I would say UI and graphics design is the weakest area for many developers. It is for me. I can write beautiful functional code that does amazing things but my UIs suck unless they are simple. I always need to find someone who can help me with that. In my experience, and I have a lot of commercial code development experience, good UI design is a widely missing skill. It therefore pays well and is highly sought after. You might consider specialising in it?
Be careful going from C to Java. Java is still a pig of a language, do a little googling for "problems with Java" and be especially careful of the fact that Java passes everything by reference unless you use cloning. If you don't always write very loosely coupled methods and are good with encapsulation, this will bite you and often in very difficult to understand ways. I recommend running through each method with only this in mind before you consider the first version of the method complete.
My advice to you is to get Visual Studio Express (they're free), either VB or C#, it really doesn't matter, and become proficient with object oriented programming, proper error handling and scope of objects and variables. Do these things, and assuming that you have the right mindset to create good code, and you'll protect yourself from all the usual bugs that amateur developers introduce.
Then move back to Java. Java is a lot easier to be proficient in when moving from something like VB or C# because whilst frustrating, due to the things you'll miss, you will at least know rather than "not know what you don't know", if that makes sense.
If you are serious about doing this for a living, buy some books by Steve MacGuire.
"Writing Solid Code"
"Debugging the development process"
If every develope could do what these books teach, we would have a much more capable software world.
Good luck!
I have the same question? What do you think will be future programming? Developing web apps like Facebook or Android apps?
How is with work today?
I did banchelors from computer science, and want to try masters now, but I need to choose developing Androids apps or Webapps. I am pretty good at C#, JavaScript, XML.
There's a lot of milage in mobile apps, will be good for many years but there is no doubt that the future is web apps.
Excellent! What a great response. Source.android has a lot of information on what a developer should know but I still can't find information on Android GUI design--specifically. Any advice on this?
Thanks.
I think everyone should learn some c/c++ or other native language. Most will say im crazy for saying this but to appreciate what comes with the languages u mentioned above(which are all managed code) I think you should learn power and use behind native code.
c#, java, .net are all good places to start, i would not go with vb. If you choose to start with c/c++ you will be able to do any of the above easily. Tho others think its harder to learn...I say others bc i have always preferred c/c++ to the above.
Simonta... You rock!
Many Thanks.

[Q] Beginning Android Programming

Hey Devs,
After years of being into mobiles I want to start developing my own Apps.
I want to specifically program Apps for Android because I really like how Android is set up. the way it handles "closed application" and ofcoursebecause more and more people are getting an Android.
Now I'm not sure what the best way to start is.
How did you guys start developing for android?
Which books did you used?
I hear a lot of people telling me I have to start with Java, now I get Java at school but how much Java is enough to start in android? do I have to go as far as BufferedReaders and Swing or just the basics of Java?
I found this book: http://www.pragprog.com/titles/eband3/hello-android
That seems really interesting because it covers Android 2.1, does anyone have any experience with this book?
Or any other book?
All help is welcome!
I really want to make a good start in the world of Android programming
and what to get it at such a level I can actually develop programs in a company.
Thanks in Advance,
//Sterallure
Can nobody help me out with this?
As long as you know most of the fundametals of java programming learning android api and libraries should'nt be all that hard. I'd start by going to the developer.android.com learn how to install the android SDK and Eclipese, also read through the dev guide. Hello, Android latest Edition is a pretty good book for beginners, beginning android 2. as you get better move to pro android 2, or what ever you think will fit your needs. There is enough information online such as developer.android.com, forums, and tutorials that can help you learn android without having to buy a book.
I have to agree. I am no crack programmer, but there have been tutorials or sample code around the internet for almost everything I wanted to do. Especially forums and blogs. Google is my friend.
Thanks alot for the information I will also look into Beginning Android 2. I've read a couple of dev guides but I always really like reading books.
I just want a really good basic knowledge of Android programming itself and I think the API will come later, if I just know how to program somenthing then the API is helpful for creating new things
Programming for Android is basically using the Android API's
I suggest www.commonsware.com books. Its a $40 subscription and you get 4 books(Android Programming, Advanced Android Programming, Android Programming Tutorials, and Android Beyond Java) that are updated periodically. Its really a great deal. I have it and I've learned so much and also the author is very active on stackoverflow and also writes many articles on android.

C# programming - anyone use Xamarin?

Has anyone used Xamarin to build their android apps? I have been programming using C# for sometime now but have never used it to build anything for android.
They have tons of free libraries, but as for licensing, I am skeptical in purchasing. Anyone like or dislike Xamarin? If you do or do not, can you explain why? Thanks a bundle!
Haven't used it but you have to think whether it's worth the price. The advantage is you can write in C# and share code between Android/iOS. However the UI is still platform-specific, so it has to be implemented twice. A free alternative is to use C++ for shared code (Android: via NDK, iOS: compiles directly), but that definitely needs more initial setup effort than buying Xamarin's product.
Here is an informed opinion
There is a gaming studio that used Xamarin to port their WP stuff to Android and iOS, and they're quite happy with how it turned out.
Do a search for "FourBros Studios, Cross-Platform Game Development with Xamarin and MonoGame". I can't post a direct link because of forum rules here.
Of course games are entirely different beasts than regular apps (for example, UI-wise), so not everything may apply to your situation.
I've plaid with Xamarin... and its a good system.. but Is it worth $300 to not learn java?
Cross platform development tools have their place, but IMHO unless you have a large project and NEED a cross platform development tool you are hurting yourself by not going native.
Just my .000002c
Java is so similar to C# I would think you'd be fine just going native - in terms of syntax they're virtually identical. I do kind of miss the var keyword though lol
I agree with LostByte - there's no real point to going cross platform unless you really need it. Don't stay with C# just because it's what you know! Use what's most appropriate for the app

IDK: Eclipse or Gamemaker Studio

Ok, im new in android development, used gamemaker studio for couple of hours, used eclipse for very short time, and basic4android little bit more than the eclipse.
so what are the differences in these programs. could i make a game in eclipse alone (no need gamemaker studio and basic4android)?
Yes you can make a game, or any app for that matter, in eclipse.
Eclipse is an IDE (Integrated Development Environment) which helps the user during coding sessions with auto-assist features, corrections, color-highlighting, auto-formatting, amongst many many more features.
What Game maker is (from my understanding anyhow) is a more graphically oriented IDE. It does more "coding" for you behind the scenes, whereas in eclipse, you're basically writing in a very sophisticated version of notepad.
I develop using eclipse, and have been since I started almost 4 years ago. Since Android Studio has emerged, I tend to play around with that a bit.
My suggestion for you if you are looking to develop strictly for android is Android Studio here : http://developer.android.com/sdk/installing/studio.html
The android developers website has plenty of useful tutorials, guides, references, and troubleshooting.
Hope this gets you started in the right direction. Good luck, and happy coding!
Noted to self thrice via tapatalk
thanks for recommending me the android studio, since i will be ONLY making apps for android.
hell911 said:
thanks for recommending me the android studio, since i will be ONLY making apps for android.
Click to expand...
Click to collapse
Yeah, Android Studio is highly recommended but may be a little more complicated when getting into advanced projects (external libraries, gradle, etc...). But if you are just starting out, it has a lot of helpful features and tooltips that may help your understanding a bit. Another downfall is that Android Studio is still in fairly early development, which may present bugs from time to time.
Eclipse is also highly recommended, as it is a very solid build. It is not designed strictly for Android, so it is not as helpful with all of it's features.
Either way, stay motivated and believe you can do it. That's what really matters.
Noted to self thrice via tapatalk

Categories

Resources