87 percent of Android developers worried about fragmentation, survey says

124

Comments

  • Reply 61 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by alandail View Post


    if you're porting an app or reusing existing code, you either use NDK so you can use your C/C++ code or you have to rewrite all of your code in Java, right? I just ported a major C++ app that is a cross platform Mac/Windows app to the iPad (using objective-C++), it took less than 2 weeks to get all of that code up and running.



    DalvikVM/SDK means Java based, yes. But what you're talking about has nothing to do with Fragmentation. Fragmentation is between different versions of Android, something that the SDK/Dalvik VM were designed to mitigate.



    It might be easier to port existing code from other ecosystems into iOS compared to Android (I'll leave that up to a programmer) but if the android program is developed with the SDK, OS "Fragmentation" and things like screen resolutions/sizes are not the overwhelming issue that people claim, this is doubly true thanks to the new "Fragments" framework, that works from 1.6-3.0+
  • Reply 62 of 86
    kane08kane08 Posts: 10member
    Quote:
    Originally Posted by sflocal View Post


    Wait... do you mean the fandroids criticizing everyone about spreading the fragmentation FUD were actually in denial??? Say it ain't so!!!



    lol, the rabid fandroids will always be in denial.
  • Reply 63 of 86
    macrulezmacrulez Posts: 2,455member
    deleted
  • Reply 64 of 86
    alandailalandail Posts: 757member
    Quote:
    Originally Posted by Menno View Post


    DalvikVM/SDK means Java based, yes. But what you're talking about has nothing to do with Fragmentation. Fragmentation is between different versions of Android, something that the SDK/Dalvik VM were designed to mitigate.



    It might be easier to port existing code from other ecosystems into iOS compared to Android (I'll leave that up to a programmer) but if the android program is developed with the SDK, OS "Fragmentation" and things like screen resolutions/sizes are not the overwhelming issue that people claim, this is doubly true thanks to the new "Fragments" framework, that works from 1.6-3.0+



    So fragmentation isn't an issue if you're not at all concerned with having your app run on other OSes?



    I think most Android developers (87%?) care about cross platform development. People bringing iOS apps to Android, people who eventually want their successful android app to run on iOS devices, etc.
  • Reply 65 of 86
    alandailalandail Posts: 757member
    Quote:
    Originally Posted by MacRulez View Post


    Yep, nothing says "quality" like have 23 versions of fart apps.



    Good thing Apple's VP of the App Store stepped in to protect his "quality" (he wrote one of the first fart apps) by now excluding apps where there are too many in a given category (such as his own).



    282 fart apps in the android market (I guess that's one way to get your app count up)



    https://market.android.com/search?q=fart&so=1&c=apps



    I guess that's better than the 100 malware apps that made there way in (I guess another way to boost the app count?).
  • Reply 66 of 86
    macrulezmacrulez Posts: 2,455member
    deleted
  • Reply 67 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by alandail View Post


    So fragmentation isn't an issue if you're not at all concerned with having your app run on other OSes?



    I think most Android developers (87%?) care about cross platform development. People bringing iOS apps to Android, people who eventually want their successful android app to run on iOS devices, etc.



    This "Survey" such as it was is ONLY in regards to Android based development and fragmentation. The survey itself is next to pointless because we don't have the methodology, but if we take it as it is it has NOTHING to say about how developers feel about android as it comes to cross platform development.
  • Reply 68 of 86
    macrulezmacrulez Posts: 2,455member
    deleted
  • Reply 69 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by alandail View Post


    282 fart apps in the android market (I guess that's one way to get your app count up)



    https://market.android.com/search?q=fart&so=1&c=apps



    I guess that's better than the 100 malware apps that made there way in (I guess another way to boost the app count?).



    There were 50 malware apps, all from one developer, all pulled. They effected less than 1% of total handsets.



    App count is pointless. It was a race started by apple to showcase that they had more apps on their platform. And now that they're lead in numbers isn't as great they're switching to QUality not quantity.



    The reality is that the average user will have WELL under 100 apps on their device, and a lot of those apps will be common across users. The number of apps available is great for those of use looking for niche products, but the reality is that numbers are numbers and you could care less if the app store only had 100 apps as long as those are the 100 apps you want. What android really lacks right now is decent discovery and filtering. Without the app store's filtering program (which is good) you'd see just how many of those "hundreds of thousands" of apps are the quality Apple is aiming for.
  • Reply 70 of 86
    shardshard Posts: 96member
    Quote:
    Originally Posted by al_bundy View Post


    the interface thing i kind of agree but even most keyboard phones have touch these days



    for the different speeds of the CPU/GPU this has been handled by the PC game devs long ago. look at the installed base and figure out which percentage you want to support. then write your app for the slowest hardware of your percentage. for the really good devs they do optimizations to support the latest and greatest GPU's. like Epic did with the newest version of Infinity Blade



    maybe apple virtualizes the hardware better in it's software but most apps i see still support the iphone 3G and that generation ipod touch. these had no GPU. so devs are writing code for really old devices and then extra code if they want to give eye candy to the 3GS and iphone 4 level phones



    You just made my point. Ideally an app written for 1 Android should work on all other Android devices. There should not be a need to have different versions or decide to write off entire segments of the market.



    The fact that developers are doing this means that there is fragmentation. Yes, even the difference in performance between an iPad and iPad 2 is considered fragmentation, right now we have apps that include high resolution graphics for the iPad 2, Infinity Blade and Dead Space comes to mind but it requires extra effort on the part of the developer. This is very minor compared to the mess that is Android.



    There may come a day when there will be a new class of apps that only run on the iPad 2 and iPhone 5 because of the speed difference between the processors. Even Rovio the developers of Angry Birds has problems porting Angry Birds to Android with support for all devices.



    You used games as an example, which is not mission critical. What about a messaging app? Writing off a percentage of the market means we have already failed since there will always be users who will never be able to communicate with the rest using our app.
  • Reply 71 of 86
    jlanddjlandd Posts: 873member
    Quote:
    Originally Posted by d-range View Post


    Maybe it has something to do with the fact that anyone with a computer can be an 'Android developer' and register as one, even though you have no experience or talent, and are unlikely to ever release anything meaningful? Even my little brother is probably counted as an 'Android' developer some way or another, since he registered himself and got into the Google App Inventor program at some point.



    If you wan't to register as an iPhone developer you need a Mac, and to develop and release your work you'll need to fork over $99. This already weeds out all the naive 'I want to be a developer but I don't want to invest anything'-types of people, and limits the pool of 'potential developers' to the less-than-10% Mac marketshare. Plus you need to know Objective-C, which is almost exclusively used on Apple platforms these days. Android is Java, and probably about anyone with a background in computer science or programming know will at least have had to program something in Java that once or twice.



    As always, numbers and statistics are deceptive. Just like this '87% of Android developers worried about fragmentation' statistic by the way. It does show that fragmentation is not imaginary on Android though.





    Exactly. In a year there will be 50,000 android apps, of which 15,000 are duplicates of others, 10,000 are shilling of content, 15,000 will be games, 5,000 apps which no one can figure the usefulness of and of the remaining 5,000 the useful apps will be lost in the shuffle of whatever is left that actually runs. If someone claims to be a developer and is crying about a $99 fee, they're not a developer. If they can't borrow $99 I don't want whatever they create on my box. And as far as requiring a Mac, well again, it's great that Apple is weeding out anyone who wants to develop apps who is really a hobbyist (who doesn't like Macs) and not likely a potential developer of a worthwhile IOS app. I'm all for anything that keeps the Apple app store from looking like the messy disaster that the Android marketplace already is.



    When I had my Mac + I had a friend who chided me for having a computer that had such strict programming rules while Windows was so much easier to release programs for. True, the numbers and choices were no contest, but he had hundreds of horrible Windows programs while I had a few handfuls that worked great, and it was all be design, not because it was too small a market.
  • Reply 72 of 86
    shawnbshawnb Posts: 155member
    Seems funny that for all the developer worry, fragmentation doesn't seem to have negatively effected the end Android user to any large scale.
  • Reply 73 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by shard View Post


    You just made my point. Ideally an app written for 1 Android should work on all other Android devices. There should not be a need to have different versions or decide to write off entire segments of the market.



    The fact that developers are doing this means that there is fragmentation. Yes, even the difference in performance between an iPad and iPad 2 is considered fragmentation, right now we have apps that include high resolution graphics for the iPad 2, Infinity Blade and Dead Space comes to mind but it requires extra effort on the part of the developer. This is very minor compared to the mess that is Android.



    There may come a day when there will be a new class of apps that only run on the iPad 2 and iPhone 5 because of the speed difference between the processors. Even Rovio the developers of Angry Birds has problems porting Angry Birds to Android with support for all devices.



    You used games as an example, which is not mission critical. What about a messaging app? Writing off a percentage of the market means we have already failed since there will always be users who will never be able to communicate with the rest using our app.



    Messaging apps are developed using the SDK, which automatically handle different resolutions, speed and hardware configs. This is easily available knowledge.



    THe ONLY fragmentation issues come up when you're working with the NDK, or your app requires an API level not available in older versions (which most don't)
  • Reply 74 of 86
    alandailalandail Posts: 757member
    Quote:
    Originally Posted by Menno View Post


    Messaging apps are developed using the SDK, which automatically handle different resolutions, speed and hardware configs. This is easily available knowledge.



    THe ONLY fragmentation issues come up when you're working with the NDK, or your app requires an API level not available in older versions (which most don't)



    which is anyone trying to write or use any cross platform code at all, because those people are using C++ and not Java.
  • Reply 75 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by alandail View Post


    which is anyone trying to write or use any cross platform code at all, because those people are using C++ and not Java.



    No, as someone pointed out earlier, if someone is writing a cross platform app they're using a cross platform compiler now that Apple has (wisely) backed off of their ban on them.



    And again, Cross platform development has NOTHING to do with Android "fragmentation", specifically in reference to this sham of a survey.
  • Reply 76 of 86
    alandailalandail Posts: 757member
    Quote:
    Originally Posted by Menno View Post


    No, as someone pointed out earlier, if someone is writing a cross platform app they're using a cross platform compiler now that Apple has (wisely) backed off of their ban on them.



    And again, Cross platform development has NOTHING to do with Android "fragmentation", specifically in reference to this sham of a survey.



    how does a cross platform compiler help with using existing cross platform code or libraries. And some of us prefer to not have an artificial layer of inefficiency between our code and the OS as a cross platform compiler is not going to have the same efficiency as native code.
  • Reply 77 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by alandail View Post


    how does a cross platform compiler help with using existing cross platform code or libraries. And some of us prefer to not have an artificial layer of inefficiency between our code and the OS as a cross platform compiler is not going to have the same efficiency as native code.



    And again, what you're talking about has NOTHING to do with fragmentation. You just threw it in there when people pointed out the obvious (that the SDK handles most fragmentation issues if people aren't lazy while coding) Note: I'm not saying that using the NDK is being lazy. I'm saying that things like screen scaling, API levels, etc are all capable of being handled NATIVELY by the SDK and it's just up to the dev to put the reference files there. For high end games, you have to use the NDK (at least for the moment), but for practically every other application (and for most games) there is NO reason to use it.



    And if you don't prefer to have that middle man of a cross compiler, than don't use it. But to expect EVERYONE to use the same basic code is stupid, specifically when the DALVIK VM is what Android apps were supposed to be run on in the first place. Doesn't WebOS/Windowsphone7/RIM use different frameworks as well? Even if apps were easily portable between iOS and android, in your mind there would still be an issue because they wouldn't work with these other platforms.



    That's the biggest issue is that a lot of people expect EVERYONE to develop exactly the same as iOS. I'm sure that if anyone tried, Apple would sue.
  • Reply 78 of 86
    alandailalandail Posts: 757member
    it certainly does have to do with fragmentation. It's been stated that using the NDK subjects you to fragmentation and I'm giving a good reason why many people would prefer to use the NDK. You're trying to suggest there is no reason to use the NDK beyond game performance, which simply isn't true. If you are goign to write cross platform code, you aren't writing the core of your app in Java, you aren't writing the core of your app in objective-C, and you certainly aren't using a cross platform compiler that supports a limited number of platforms. You're using C++ and creating cross platform code taht works equally well under Windows, MacOS, iOS, Android, and whatever platform there is in the future.
  • Reply 79 of 86
    mennomenno Posts: 854member
    Quote:
    Originally Posted by alandail View Post


    it certainly does have to do with fragmentation. It's been stated that using the NDK subjects you to fragmentation and I'm giving a good reason why many people would prefer to use the NDK. You're trying to suggest there is no reason for anyone to ever use the NDK, which simply isn't true.



    No, I've said SEVERAL times, that if someone is making a high end game the NDK is still the best way to optimize the content. In fact, I've said that since the start. Nice second failed attempt at misdirection though.



    But if you're porting over a RSS reader and trying to use the NDK you are DOING IT WRONG. This makes as much sense to do on Android as direct porting a flash app to iOS using a cross compiler is. It's just a sign of a lazy dev.



    I said that cross platform compatibility has NOTHING to do with Fragmentation. Yes, some devs (such as yourself) may wish to make an app once and then not worry about it, just using the path of least resistance to port it. But I can promise you that doing that means your app won't be successful.



    When Apple blocked cross compilers, devs and commenter's on this site (and others) made a huge deal about how only crappy devs tried doing direct ports, and that to be a quality app, the dev needed to make it the "right way" aka native iOS. Android was DESIGNED to use Dalvik as the NATIVE path. If you are using the NDK for ANYTHING but high end games, you're taking the lazy way out. You're creating an application that's not optimized for android just like someone who uses a third rate cross compiler to take their flash game to iOS.



    There IS a reason to use the NDK but for a MAJORITY of developers (90%) it is NOT the way to bring their app to Android if they want it to work well, even IF you're working on bringing it to multiple platforms. Again, just because you're used to doing something one way with iOS doesn't mean that EVERYONE will operate the same way. If you can't accept that, then you don't develop for them.



    EDIT: I'll add here that I'm a big supporter of Web apps for just the frustrations you're likely to list in reply below. This would allow apps to be developed "Natively" and work across platforms. The sooner we can do away with restrictive coding languages that make the final product work on only a single OS, the better.
  • Reply 80 of 86
    alandailalandail Posts: 757member
    you missed my edits to my post last post.



    you said "Android was DESIGNED to use Dalvik as the NATIVE path"



    Can you tell me what the "N" in NDK stands for? I'll save you the trouble - from Android.com



    Quote:

    Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.



    NDK is designed for exactly what I said it would be used for. To write native code for either code reuse or performance reasons



    This decision of writing native code vs using the java virtual machine is not an issue on iOS because all apps are compiled as native code. Apple's approach is to target the native architecture, not a virtual machine, and to have the compilers do the work of targeting multiple architectures, which is always going to result in more efficient code than a virtual machine approach.



    And I don't know where you get the idea that implementing the core app logic in cross platform code hurts the final app experience at all. On the contrary, this is the way to ensure consistent functionality across platforms and to correct and fix bugs.
Sign In or Register to comment.