Developing ANDROID sucks!

h2. DISCLAIMER: you guessed it, this is a rant!

I am very interested in doing mobile development as a hobby. I started iOS development about a year ago but i stopped after publishing “my first iPhone app dzone mobile”:http://dzone.nofail.de/ because i thought that all those AppStore(TM) and iTunes Connect(TM) stuff was a pain in the ass and distracting me from beeing productive.

So I began developing this same app for the ANDROID platform, in order to get a feeling for it. I’ve been doing Java for about 7 years now, so developing on ANDROID should be rather familiar to me instead of learning all this verbose Objective-C nerdy pointer stuff. I am very well known to Eclipse, so working with the ANDROID Plugin should be easy, right?

I started the app in November of 2010, when I had some spare time between jobs, but somehow I stopped in the middle of the project and just recently started all over. I was wondering why I had not worked on the app for about half a year?

The answer is simple: Developing ANDROID sucks!

h2. Eclipse

I stopped working with Java in the middle of last year, switching to Ruby development with TextMate and MacVim. Coming back to Eclipse is like getting hit by a truck! This IDE is so overwhelming, but instead of giving you what you need it hides “the most common features, so that you have to search for it on stackoverflow”:http://stackoverflow.com/questions/3175035/eclipse-find-in-project.

Is it really necessary for me to do Open-Clean-Refresh-Close-Open-Refresh cycles on my project to let Eclipse realize that everything is fine besides Eclipse itself?

Why do people, building Eclipse plugins, make the same errors again and again? Swallow errors, so that you need to have the Error Log View open all the time? Show build failures without any hints? Are you serious about that LogCat stuff? WTF?

I am using the debugger all the time when I am new to some Framework in order to better understand what is going on. But this is not very usefull unless you can see the source code of where you currently are… Guess what, it’s “reeeeally hard to get it going”:http://android.opensourceror.org/2010/01/18/android-source/!

h2. Emulator

The ANDROID Emulator is really slow on the Mac. I don’t know if it’s much faster on other systems, but i think it sucks. The startup time takes even more than eclipse, you need to “fiddle around with runtime settings in order to adjust it to your needs”:http://stackoverflow.com/questions/2359895/android-emulator-screen-too-tall and why is it so difficult to put all the options you have in the menu bar instead of “hiding it somewhere in the function keys”:https://sites.google.com/site/androidhowto/how-to-1/rotate-mac-emulator?

But the best thing is, that the “emulator is just not working right in the beginning”:http://stackoverflow.com/questions/3557996/android-httprequest-java-net-unknownhostexception.

It does not properly respond to mouse gestures or the keyboard and ah yeah, I forgott, it’s ugly!

h2. Desing-Flaws

Developing for iOS is a tough choice if one is coming from a language like Java that has a decent Runtime with garbage collection. I spent most of my development time with allocation/deallocation problems. This is something you really need to get into if you want to have fun working with Objective-C even though they “just released ARC (automatic reference counting) on iOS 5”:http://stackoverflow.com/questions/6368600/some-questions-about-automatic-reference-counting-in-ios5-sdk. Besides that, I really think that iOS does a better job in designing an architecture that is developer friendly.

The thing that I just can’t get over on ANDROID devices is that the application (the activity to be precise) is going to be reloaded if you rotate your device and you need to take care of a lot of things in order to let your app respond to that interaction. Just have a look at “_your future self_”:http://developer.android.com/resources/articles/faster-screen-orientation-change.html …

It’s really sad to me, that the ANDROID designers decided to repeat the bad design decisions that had been established in Java Enterprise(TM) all over again! It took the Java community about a decade to step back and come to frameworks where developer productivity is THE thing to focus on. All the rookies that start their “Java career” with ANDROID will be doomed to go through this same process again! Poor bastards…

h2. XML

Finally! Let’s define everything in XML! I am getting bored at bashing on XML…

$ find . -name "*.xml"
./AndroidManifest.xml
./res/layout/details.xml
./res/menu/options.xml
./res/values/strings.xml
./res/xml/preferences.xml

iOS is also using XML for their interfaces, but they hide all that shit behind a really decent “InterfaceBuilder”:http://developer.apple.com/tools/interfacebuilder/!

The Builder and XML Tools in the Eclipse Plugin are so ugly that i rather write the whole shit by hand, BITCHES!

h2. Tight coupling

Why, for gods sake, did they come up with the idea to use inheritance for everything in ANDROID? It’s even worse than in J2EE because you are not bound to Interfaces but Classes! Hello dear ANDROID designers, there is no such thing as Mixins or Multi-Inheritance in Java?! How am I supposed to write clean code with that? Answer: You are not going to write clean code anyway, because you have to do premature optimization on your code so that it can run on all the shitty ANDROID devices! YEAH!

Just forget everything you learned form state of the art frameworks like MVC or DI. It’s just not possible! BY DESIGN!

Just put state, lifecycle, business and view logic in one class; also helps reducing your package size, HOORAY!

h2. Checked Exceptions

Do we really need more Checked Exceptions? Really?

h2. Testing

Writing tests for iOS was nearly impossible at the time I was doing it. Even the guys at the Cocoaheads Hamburg did not know how to get it running. But this situation has improved over the last months. Special thanks to XING for doing a lot of research there and presenting it on the Usergroup!

I thought that testing for ANDROID would be really cool, because the Java community has a really strong background on TDD and “Testing is even a Topic on the Dev Guide”:http://developer.android.com/guide/topics/testing/index.html, even though it is the LAST one…

Let me make it clear to you: Testing ANDROID sucks!

Because of all the tight coupling and multithreaded environment it is nearly impossible to test something. Even simple tasks like testing your Utility-Methods needs to be done in the Emulator! Just have a look at this “multiscreen setup guide of how to get it running with JUnit”:http://mobile.tutsplus.com/tutorials/android/android-sdk-junit-testing/ (Hello?! JUnit 3 is deprecated for YEARS!).

Despite all this crap, I finally did it! So please test “my dzone application”:https://github.com/phoet/dzone_android, because I do not own an ANDROID phone myself…

58 thoughts on “Developing ANDROID sucks!

  1. Erel

    Note that there are other alternatives available for Android development. We are developing and selling a development environment that addresses most of the issues that you described above named Basic4android.
    The programming language is similar to Visual Basic. The compiler then converts it to Java and you get a regular native APK file.
    Basic4android also includes a visual designer. You do not need to write a single XML file.

    There is not much that can be done about the slow emulator. I recommend Android developers to use a real device. Basic4android allows you to connect any device over the local network (or with a USB cable if it supports USB debugging).

  2. Dan

    This is why I think Microsoft will eventually (maybe not next year) take over the smart phone market with their new Window 7 smart phone OS; and let me tell you why. It’s quite simple really. Microsoft *IS* an operating system development company. Google is not. Google started as a web search engine, then bought out a bunch of other technology and became masters at writing really innovative Ajax style “web apps” and provides powerful web services such as email, searching maps, geocoding. Google phone, Google+, etc. In the computing world, Google lives and works on the top floor (ie. 4th generation development). Javascript, HTML, CSS, you’re typical web development languages are MUCH MUCH different than 1st and 2nd generation languages like Assembly and C/C++. Microsoft has been in the business of designing operating systems for over 30 years. Windows was developed from the ground up. Google has taken Linux and Java (two open source products) and used them to build their own system. Now, one of the things that made Microsoft so successful (that most people wouldn’t know) was because they made their system to be developer friendly. Most programmers love working in Windows. You have such a plethora of options from MFC to Visual Basic to C#. If there is one thing no one could ever say about Microsoft is that their development tools sucked. MS has always been on the cutting edge of helping developers create their master pieces in a user friendly environment.

    In my opinion, NOTHING compares to Visual Studio. Nothing. Android, like the rest of the Linux pack rely on these poorly designed, over engineered, buggy and slow IDE’s like Eclipse. In complete contrast to Visual Studio, Eclipse is simply the most annoying IDE man has ever created. Seriously. The people who developed Eclipse did themselves and the developers they want to help a big disservice. The IDE is way too complex. Everything but the kitchen sink is thrown into it. It’s painfully slow, even on fast hardware. Sucks memory like a vacuum. The debugger perspectives are okay, but too much is crammed on one screen. An IDE with too much customization ability is not always a good thing. And the most important of them all… it doesn’t even come with a UI builder. Even Netbeans offers a really descent UI builder and you don’t have to install anything extra to use it.

    In my opinion, this is precisely why the android market is flooded with such a high percentage of 3rd rate flimsy apps that crash all the time. The developers spend too much of their time futzing around with a slow IDE than writing, testing and debugging their code as quickly and painlessly as possible. Google should develop their own IDE from the ground up that’s fast, solid, easy to use, comes with a powerful UI builder and works seamlessly with Google only technologies, like Android, Google Web Toolkit, and Javascript development. A company with it’s own operating system needs a really good development environment to be successful and thrive.

  3. Etienne Christophe

    Android development is a joke. The tools are crap, slow on *all* systems. It’s like going back to punch cards. iOS development tools are much, much better, even if Objective-C is a little wonky. I’d much rather learn a new language then mess with crappy tools.

    My opinon of Google is going down hill over time, but messing with the Android SDK is just a kick in the groin. Honesly, J2ME development on phones was quick and easy. Why must Android set software development back 20 years?

    My hat is off to anyone who manages to write an Android program. You have far more patience than I do.

  4. Danny

    I second all of these comments. I am trying to write a simple app, I have spent the last hour trying to setup eclipse and I have no lines of code written!

    I don’t understand why someone can’t just build a ubuntu or windows package that is a one-stop install. I understand you may want to customize, but you can do that on your second app!

  5. Mikhail Kornienko

    First of all, I must confess I was googling for “android programming sucks” :)
    Was doing that because I – as, I guess, many others visiting this article – think about potentially starting developing for Android (on mobile, currently only doing iOS stuff myself, but planning on future steps..).
    And man.. I really didn’t expect I would find so well laid out rant! :) Many thanks! That gave me quite a bit food for thought…

  6. Eduardo Capanema

    I was googling for the same thing: “android emulator sucks”!!! huahauahaua. Coming from iOS, I’d say, Android is a big pile of junk shit! But… Has to be done! God, give me a lot of patience!

  7. Igor

    Currently, I am iOS developer and time to time it is interesting to try some new for me mobile technologies. Before I tried android I thought it is the main competitive technology after when I done hello world and it set me at variance with android development but I did not yield, I thought that I did something wrong so I started to google and did not find anything, all works as it should – laggy, ugly and buggy. Now I am sure it is just for running “something” for making screenshots for market. Google does not take care how the app will work or how it was developed. I just spent the time. In future I will google first ). Thanks for your article.

  8. Alex

    Well. I have meed working with android and eclipse. And damn, it suck really hard. I prefer Windows Phone 7 in Visual Studio when i tried that in one week. Much more stable and faster! Easy to use debugging and so on.
    So from now, I develop applications in WP7 first, and later porting to android. You save a lot of time to do on that way

  9. chris

    I’ve been developing iOS/Mac apps for a couple yrs. Just started developing on Android several months ago on both WP7, and Mac OS X Lion. Android tools suck! If you’re going to develop on Android, you need lots of patience. That emulator needs to be rebuilt. What a piece of sh$t! And what’s with all the exceptions being thrown in the log even when the sample apps run fine?!

  10. Chris Nevill

    I came here because I’d just hit yet another Android Pot Hole.
    Your rant made me feel better!

    One bit of advice I can give to all Android Developers is – drop Eclipse. Its truly awful. Play with IntelliJ for just a couple of days and I guarantee you’ll never go back! (Caveat : Don’t stick with the IntelliJ’s default keyboard mappings for undo or rename)

    Onwards!

  11. Rob

    The grass is NOT greener on the Microsoft side … VS 2010 is full of bugs and it’s performance is terrible!! 60-90 seconds to load a single XAML file and display it in the designer (lucky my app runtime isn’t as bad but still slow).

    Try migrating an Silverlight 4 app to Silverlight 5 and then update the Silverlight 5 app … your end users will get “Operation is not support on this platform” error … due to a bug in VS 2010 where it doesn’t clean up InBrowserSettings.xaml file and project file entries … took a day to figure this one out. But that most of what I do, google searches to figure why stuff isn’t working that should be working.

  12. SallyQ

    Here here! Several months ago I began testing the waters of mobile development, feeling I should expand my skill set and diversify my portfolio a bit.

    In any case, I felt I should test out both iOS and Android, being the two most popular options out there. I went into this with almost no Objective-C experience and moderate to good familiarity with Java. The first thing I found was that learning Obj-C was a breeze, and I could make use of a lot of my existing C and CPP knowledge.

    In terms of the platforms and their APIs, I found Android classes were somewhat difficult to pin down. Having full access to the source code is a big plus that iOS is sadly lacking, but it doesn’t make up for the poorly organized set of features (or lack thereof) in the development kit. On iOS I had relatively little problem finding the classes and methods I needed.

    It’s also worth noting that I felt iOS has the upper hand in interface development. Apple has put thought into making app design a first class citizen of the development chain. The solution is elegant, and takes away the time consuming task of determining how to organize the UI of apps myself.

    One area where Android has the upper hand is in memory management. Java’s garbage collection is simple and unobtrusive compared to Obj-C’s series of allocations and deallocations and pointer madness. The problem is that I found memory problems much harder to control under Anrdoid. This problem is only made worse by the utter lack of quality testing tools. And what Obj-C loses due to it’s complex memory model, also turns out to be it’s saving grace by giving developers more fine grained control over how memory is used.

    Finally, the IDEs for both are adequate for development. I’m no stranger to Eclipse, and don’t find it too difficult to work with other than being somewhat sluggish and overdesigned by default. XCode wasn’t as full featured, but it’s quick and it gets out of the way without all the abstractions and layers of interfaces present in the former.

    From my perspective, I would say both Android and iOS are suited to different styles of development, and whether or not one likes one or the other depends on how you code. They are two different, and entirely legitimate approaches to app development.

    Apple gives you a nice clean language and a set of development tools that stay out of the way and facilitate rapid production and release of apps. They have a ton of APIs available for doing common things like so you’re not consistently reinventing the wheel with every new undertaking. The control over the guts can be fine tuned with fewer abstractions to get in the way.

    Google gives you a robust, simple language and a bare bones set of tools that tends to make development more involving. Their solution leaves a lot of room for custom solutions because the API doesn’t pretend to cover all the bases. You spend more time controlling every aspect of implementation.

  13. dude

    Another point to consider: if you are planning to use the Android Compatibility Package to develop an app both for mobile devices and handsets: it’s full of bugs, so even the basic tasks of adding/removing fragments and managing the backstack fail.

  14. Waqqas

    This article sums up every qualm I havr with Android development. i myself am considering moving to Windows Phone development even though I’m not a big fan of Microsoft.

    I have to add that one of the best development frameworks i have ever used is the Qt.Framework. Android could learn a lot from it.

  15. brianoh

    I think IMHO that Eclipse is like some generalized programs that should never have happened. We need something specific that addresses Android. Eclipse is a PITFA. Why do Google (or whoever) go half way and not the rest?

  16. Chris

    The first comment said it.
    Basic4Android is easy, familiar, robust.
    Google search basic4android reviews and see what others think. Developing for Android doesn’t suck – it’s ace. Whether you’re using Flash CS5.5, haXe or basic4android, it’s not that hard! If you persist with nasty development environments and IDEs, then *any* development is going to be difficult.

    Try basic4android and if you can’t get a store-ready app in a few hours, give up coding and try another hobby/job/topic to rant at ;-)

  17. phoet Post author

    @chris you are missing the point. really!

    and bye the way, i don’t want to use flash nor an ide only available in windows!

    there are for sure other ways to develop apps for android (like phonegap) but why do i need an abstraction for something that should be given as a default?! android is just a ton of crap!

  18. Hai B.

    It’s up to everyone. To me, Android is beautiful, and it’s scalable from device to device.

    The most things I need from Eclipse is auto formatting code, showing javadocs, and auto-completion in XML files. I debug, work with emulators… in terminal.

    Android emulator is sick. But I’m happy with it.

    I’m running Fedora 64 bit, 2.5 GHz dual core, CPU E5200.

  19. Alex

    Cannot agree with you more. I have been programming in Java since 1998 so I know a thing or two about it. I thought that Android development would be very sweet since I do not need to learn yet another language, but it turned out to be a painful experience.

    The SDK itself has plenty of bugs in it. You can never be sure that stuff will work properly. Take the styles for instance. Try to make round corners, in particular upper left and upper right corner only. In 2.x, the upper right corner is actually lower left. But of cause they fixed it in 4.x… The widgets are ugly, the emulator is useless, you have to buy a device and use it for building an app, and then be surprised that your app does not look or work the same on another device. You really have to be careful to write your code proper so it does run on devices other then your own.

    I have built three apps now, one of them is for an enterprise use and supports all devices started with 2.2. It was pain to get it all properly rendered on all the millions of different screens. In iPhone world you build for one screen, all screens are the same.

    Those pesky XML files. XML provides static views, what if you want your views to be dynamic? If so, one may end up with a messy code if not careful. The Intents. Everything is calling everything via an intent, thus in a large app there are hundreds of those intents and you have to track what sends what and where it ends up. I find it rather annoying. They were supposed to separate your UI form your Business logic, but it failed miserably at it. Making views dynamic requires programming them in Java, and while you can do everything possible in XML view in plain Java the code ends up rather cumbersome and verbose. Do not even get me started on styling the controls. It is a pain.

    UI Scope. In Android you have to pollute your code with an XML file for each view for both portrait and landscape modes not to mention the different screen sized and resolutions. In the end you end up with tons of xml files for which you have to come up with clever names, because you cannot arrange them in sub folders. You also cannot control the scope. Once you declare an ID for a control defined in an XML file, it is available everywhere. That is nasty. For instance XML layout definitions have all to leave in the same layout folder. Try building an app for a tablet that has a lot of “fragments” each fragment will have an XML file. All the IDs you give to the controls have to be unique, because they are in the global scope. So as a developer you have to again tax your imagination to come up with descriptive and yet unique IDs for controls that are often similar in nature. Like for instance a “save button” that might be found on many different fragments. I find it annoying.

    The out of the box separation of concerns is lacking. The activity often may contain the UI and business logic combined. I consider that a poor taste. In my humble opinion the UI code and Business Logic code should be properly separated.

    Eclipse, well I do not use Eclipse, sorry. Free it might be, but IMO it is rubbish, thrown together without any central thought through careful design. It is free – you get what you pay for. I use IntelliJ 11 ultimate, a far superior IDE by miles. And yes the errors in LogCat are wired in to InteilliJ nicely, at least you can get straight to the code where it happens. Of cause IntelliJ does not have a UI builder plugin for Android, but I see it as a bonus. I do not like UI code that was made with a mouse. I prefer to write it myself so I have intimate knowledge of what exactly is there and why it is there.

    The Android platform itself, while has an awesome potential is not a very nice eco system. Look at any two Android devices with the same version of the OS. Right they are different. They come pre-loaded with garbage and festooned with hundreds of desktop widgets, non of which I want to have. It is busier then a bishop’s hat. In the end the user is bewildered with all the stuff there.

    The navigation is not intuitive, the UI flow control is awful thanks to the back button. I do not know how about you, but I am in the camp of people who thinks that the back button is the work of satan. It completely messes up the work flow. Imagine a login screen. So you log in, and then you push back button (by accident), so not you are back on the login screen, unless you as a programmer do something extra about it. Why should I do all that extra work?

    Android could have been a very awesome platform, but sadly it is not. Lack of pretty looking UI controls, a cumbersome UI flow, awful so called “emulator” that does not actually emulate any real device at all, and the fact that no one actually owns and therefore controls the OS makes this platform less desirable.

  20. thi ha

    developing android app using titanium. looks like aptana based titanium studio is better than eclipse. anyway emulator sucks on mac. working properly on windows though.

  21. Matthijs

    It might be worth it to take a look at mono for android and monotouch! You can do your android development in visual studio!

  22. Tomas Dulik

    Hi, I teach programming at FAI TBU Zlin. In mobile programming courses, we teach JavaME, Android and iOS.

    To make the students progress smoothly, we start with Netbeans for JavaME. Excluding the Netbeans 7.2 version, whose Wireless development toolkit 3.0.5 is buggy (https://netbeans.org/bugzilla/show_bug.cgi?format=multiple&id=211171), the JavaME is the easiest one. This is because JavaME itself has very small API and also – it has been here for very long time, so the Netbeans could polish their IDE to the current perfection.

    Android is the phase nr. 2. It has Linux-inside, it is programmed in Java and the IDE is Eclipse – everything our students know already. The emulator is slow, but there is the AndroVM project for VirtualBox which emulates Android 4.1 and runs OK even on slow PCs. Besides, most students have their real Android phones so they can debug on a physical device.

    As for your “Eclipse” ranting: the Eclipse ADT plugin has improved a lot during last year. 2 years ago, I thought that students will never like something as ugly and complex as the ADT. But now (Eclipse Juno, ADT version 20.0.3), it is almost perfect. The features like localisation (I18n) and theming in the visual UI designer are so great – JavaME & Netbeans do not have anything like this.

    We teach iOS as the last thing, because it is …can’t find the right word..bizzare? The Objective C is bizzare without question, but I tell students “The More Languages You Know The Better Off You Are!”. But the memory references management in IOS =3) – in XCode, one must code more advanced layouts in hand, while Eclipse has their equivalents supported in the visual designer. Also, XCode crashes time to time without a deterministic reason. I do not remember if Eclipse ever crashed or have to be restarted – I have running constantly on my desktop…

    As for Microsoft Visual Studio, it was the best IDE…10 years ago. Since then they concentrated more on changing the UI than on the real important things like the C compiler (why it still does not fully support C99 after 13 years the standard is here??). Every year we install new versions or updates to our classrooms, we end by pulling our hair when trying to locate the options and features we once used to know… I do not think that MS is on the right track here. Therefore, for the last 3 years, we prefer teaching in Codelite or Eclipse even for Windows app development.

  23. Tomas Dulik

    Hm, the editor here crippled part of the text.
    I have written something like

    But the memory references management in IOS <=4 is inconsistent and totaly incomprehensible for students – whoever designed this, he had to be on LSD or marijuana.
    The visual UI designer is far better in Eclipse. In XCode, more advanced layouts must be coded manually, while their equivalents in Eclipse are fully supported by the Eclipse visual UI designer. The new UI layouts for Android >=4 are superior to IOS, and again – they are fully supported by the Eclipse designer.

  24. Tom Aman

    A lot of comments don’t mention what OS they are using for development. I don’t know what might be available for Macs, but for Windows, Basic4android is relatively easy to use – there is a small learning curve, but it is not that much different from Visual Basic and includes a visual designer. The emulators available with the SDK are slow, they do make it possible to test various combinations of phone/tablet features and various screen sizes, a real plus since Android runs on so many different phones and tablets However, there is an emulator available from YouWave.com that runs at speeds similar to a real phone that is a great help. Finally, I would suggest that, if you are going to do serious development for Android, that you should have an actual Android device for ultimate testing – a Google Nexus is probably the best choice for this.
    And the Android community can be a great help when you run into a problem.

  25. Dya

    Came here after googling “android development sucks” ;) as I’m experiencing the taste of it, and wanted to see if there is anyone else to share! And even after 3 continuous years of working on it. I must confess, it does suck.
    I hope google does something better for developers. Using custom adapters for simple things makes this so annoying! And don’t even ask about the OUTOFMEMORY error!!

  26. mark shirley

    I have found android emulator (on mac) just doesnt emulate what I see on the device It’s a waste of time it totally sucks. it show body cop or my html copy width half the width than it is actual on the device

  27. BobV

    I have spent much less time programming in fairly complex languages and databases. Now, for just the most trivial problems in Eclipse/Android, I’m spending weeks on stackoverflow.com just trying to get answers to the most trivial problems that frequently and totally prevent my running the simplest programs. Android development truly sucks!

  28. BobV

    Having been an application/database developer for may years, with experience in many application environments, I can say that android development is not worth the time for what you get out of it. I cannot make my database intensive application, that works fine on the emulator, work on the device itself (in this case a Nexus 7 that I bought strictly to introduce myself to the android environment). I am now convinced that the future of this platform is really in jeopardy, if the distributors of the device cannot find programmers competent enough to create a development environment that actually works.

  29. Svetlio

    Bro, my biggest problem with Android is that actually its API documentaion is a joke! The real documentation is inside…. StackOverflow :s ADT is so unstable. Supporting old versions is pain in the rear. Lack of good real life examples in the net. Only thousands very stupid.

  30. pat

    ahh…feels like going to the anonymous-android-developers therapy sit in! i also just looked up ‘android emulator sucks’ and surprisingly found a place to dump all my frustration to fellow android-hell-inmates.

    for the last couple of hours, i’m trying to get that darn emulator running…no not the first time, i just turned that piece of junk off yesterday, where it was working (well, as good as possible in terms of android emulator). but now it keeps reloading … reloading … reloading…oh! but there is NO error being thrown! what a piece of….

    maybe thats why 90% of all android apps look as they had been designed by preschoolers, cause people just get frustrated and end up saying. ‘you now what?! that should do. at least its running.’

  31. Andy Droid

    Wow, a lot of unhappy people in here…. I bought my first android tablet in December 2012, looked at Eclipse briefly and then bought basic4android in January 2013. I use the wifi bridge to connect to the tablet and its a breeze. Erel did a great job and yes, apart from difficulty in creating non-rectangular views, it has surpassed my expectations as an old VB6 hog programmer. My apps are cool and I download them as non-market for now while in beta before placing them in the Play Store.

    500,000 app builds in the Store and continuing and you guys say android and Google are over the hill? Tell me that again in a year when Win Surface has some customers. BTW the b4a debugger works a treat stepping through code in the IDE as I touch buttons or load data from a SQL site. No problems and a fast turnaround.

  32. Carlos Roque

    Wow. I am so glad I am not alone. I have developed for different environments and languages over the years. windows apps in .net using WPF and WinForms, silverlight, actionscript, PHP, javascript, mySQL, MSSQL, even apps for the old WinMobile 6.5 and even obscure and undocumented Kodak KPL. I have to say that I have never felt so lost and frustrated as I am with android. I am moving forwards with my app but it is only because of StackOverflow. I did learn something great about reading the posts in this article, B4A seems great, I will be seriously looking into adopting it.

  33. sjef

    Yes I totally agree. After doing an seemingly ‘innocent’ update in eclipse, EVERYTHING was broken. Syntax highlighting, the xml editor, I mean, everything. Wasted hours googling and finally just rm -rf the whole piece of shit. It seems like this crappy IDE is just made to really discourage anybody from developing for android. It’s really, really disappointing that even a trivial update just breaks everything, I can’t believe it. I guess I’m done before even getting started.

  34. Andy Droid

    I last commented here on 5th February and today is 25th Feb. In that time I have been developing b4a for my 7-inch tablet which has been great fun. Every day I dig into the libraries on the b4a site and try testing them if I have time. I am constantly amazed.

    Today I opened the Voice Recognition app. WOW – in just a few lines…
    VR.Prompt = “Say your message”
    Sub VR_Result (Success As Boolean, Texts As List)
    If Success = True Then
    ToastMessageShow(Texts.Get(0), True)
    TTS1.Speak(Texts.Get(0), True)
    End If
    and not only displays my spoken words but plays the text back in a female voice.
    and the same with most other libraries, like Signature Capture for example. I never imagined it was going to be so easy. I am connected by WiFi to my pc and the debugger is there if I need with breakpoints and watch values.
    I guess if you spent a number of years with .NET and Visual Studio then you kind of expect such a clutter of windows, but why ? I admit, I came from VB6 and the b4a is a single pane IDE, mostly. My PHP coding for the web is similarly a single page at a time in an editor so there is an anti-Diluvian link here, my tired old bones. But my brain is active – it just doesn’t see the need for 15 concurrent panes of IDE. I think when Bill Gates was tidying his desk before he left, he knew that the new kids in the building were the power force. It started back when that darn paper-clip leaped onto Word. Anyway that’s off-topic. I heartily endorse Basic4Android and all the individuals who have contributed libraries before I ever found the package.

  35. pku

    @Andy Droid

    But no one will pay even 99cent for an app that displays a spoken word/sentence/phrase in a toast. guess our demands on app design differ quite widely. as i understand there is no one having problems implementing some hello-worldish kind of software for android.

    btw. do you get paid for advertising b4a?

  36. Andy Droid

    I wish. No I am absolutely a lone programmer.
    Looking back over 25 years, I personally bought and paid for VB6 Pro, Clarion the dos db & application builder and Superbase The downside is that all those packages sadly became legacy. Luckily I had customers with legacy managers !

    I have learned to visit the user forums and read carefully what they are saying. Some just want help but then you read about the bugs and the demands to fix them, and the deaf ears. Case in point Samsungs clipboard bug. I moved from desktop to web and PHP, chose a simple CMS rather than the bloated (Drupal, Joomia,Sharepoint) and have been pleased to finally discover the world of android after its infancy.

    I speak the truth and if b4a sucked I would have walked. Reading about Eclipse it sounds something like a never-ending pregnancy. i.e. constantly in beta, though truthfully I only looked at the download and stopped there, plus I really don’t know Java.

    BTW Development time equals money for me as well as legacy managers and so ROI matters.

  37. Andy Droid

    p.s. No I didn’t get paid by b4a
    also, I have learned to visit the user forums and read carefully what they are saying. Some just want help but then you read about the bugs and the demands to fix them, and the deaf ears. Case in point Samsungs clipboard bug.

  38. David

    I’ve come to this text by a complete accident of nature. I completely stopped reading after you proposed us to “hide all that shit behind a really decent InterfaceBuilder”.

    Designing for a plethora of screen configurations trying to hide the code logic and structure behind the UI ?

    No. Just… please, please no.

  39. Daniel

    The reason is because Linux (Android) sucks!!! It’s a buggy mess of software!!! BSD (iOS) is a much better software: simple, clean and polished.

  40. Antonio

    I’m a somewhat oldish programmer. Have been programming for the last 30 years.
    Here are my thoughts on Android + Eclipse Tools:
    Almost ‘nothing’ works as you would expect it, except for very simple demo applications.
    Emulator: takes ages to start-up and cannot emulate things as simple as sound!?
    Eclipse = is like going back in time about 10 years. Everything is so counter-intuitive that it takes ages
    until you figure out what they have in mind.
    My solution: wait another say another 5 years, maybe some day they’ll sit together and sort it out.
    Pick up some code sample on the net, say two years old. It will never compile with the current state of art tools.
    Nothing seems to be backward compatible. And they keep on making changes all the time.
    Well, i guess i will give up this android hype. It’s just too bad to waste time on it at this stage.
    I’ll stop here…
    Cheers,

  41. Justin

    Frankly some of the comments above make me really wonder if certain people have the programming experience/aptitude for something such as Android applications. This doesn’t apply to all of you obviously. But in my experience working with Java and Eclipse is not that bad at all. In my opinion you all sound like a bunch of complainers to me. You could have it much worse or be working in a very low level language such as X86 or be writing COBOL(which is not that bad actually) in notepad++. Trust me if you know how to program in Java developing Android apps is just using special libraries and capabilities combined with XML for special layouts. You also have to be aware that certain aspects of your app belong in given places. You put your app strings in a particular xml file, your text files in raw resources, etc. Personally, I find it intuitive. It also doesn’t hurt that I have two Android devices to test things on. Also, publishing anything with Apple is harder than the Google Play store JMHO.

  42. Pablo

    I make ALL your words mine.

    3 years iOS developer. I can say I have – very decent- development skills using Xcode. Everything works, everything is polished, ok, the approval process can be painful, but it is a given for the quality of apps you expect running on iOS.

    Now, started developing for Android a while ago… Forget it. I give up. Nothing can describe how horrible is the whole SDK/AVDs/Eclipse IDE, layout XMLS and the list goes… Wanna make a simple Hello-MapView app? Forget it… Google won’t let you.

  43. ME

    Could not agree more with the utter cluster **** Android is. I spent a couple years teaching myself XCode, Objective-C, and Cocos2d. Holy hell, I would have never gotten an app published if it was this hard. It literally took me months to get Cocos2d-x running in Eclipse. I’d get to step 19 of 20 and throw my hands up. Now that I’m actually in eclipse and building my app, I can’t believe I’m wasting my time. It’s almost like Google said “Let’s make a phone” and did it without ANY pre-planning. They just said “fuck it, let’s make it open source and let the developers handle it.” Why in the heck don’t they have their own IDE that works even HALF as good as Xcode.

  44. Damien Golding

    I agree, why is there so much to learn? Everytime I want to do something I have to learn a whole set of classes, methods and god knows what. This stuff needs a proper editor, you can get away with the UI editing, but the Java code is something that can’t be dealt with. Ahh not enjoyable.

  45. andrew

    for what i have read. i think , i should stop dreaming about android development.
    thank you for the review

Comments are closed.