I am developing hybrid app using Ionic and I do performance testing with one low end budget android device. That phone is my performance quality assurance. Once I upload to the app store, I can see hundreds type of model of smartphone is using my app.
So, I am curious and really want to know how many phone up there that are using my app has a device that is stronger performance than my low end budget device and how many of them were slower. This is something really important for me to further develop and enhance the app. If majority, let say more than 90% of it were faster than my testing device, that mean I am safe to put in more feature into the app. If many devices where below my testing device, that's mean maybe I need to put more concern on performance on future release.
Therefore, is there anywhere I can have those data? Having my own performance test inside my app to do collection? Any API to connect to existing database to have the info of phone performance based on model?
To be honest: I don't know if there's any existing work you could reuse for that purpose.
But as measuring performance highly depends on your app and the expected bottle necks, I guess that you need to have your own testing methods and that you need to collect your own data.
One more hint: you could use the cordova-plugin-device to get information from the phone and OS your app is installed on.
#user1995781,
I understand your reasoning, however, you are making a fundamental mistake. You assume your Interface is good, when in fact users might reject is. As Jef Raskin used to say, 'Test and test again'. Jef was the original designer of the Apple MacIntosh.
The point being, you need to test the user experience too.
For your request, you want to Google: mobile analytics
Flurry, now owned by Google
Localytics
Amplitude
to name a few
Adobe, IBM and MS all own or have one product in this category. - Best of Luck
Related
I have been doing some heavy research into the field of Visual Search, and I tried the technologies from Google (Goggles), Amazon (Firefly), and other vendors.
I can say that FireFly is actually the best, because its instant identification (no need to snap a photo and send it to some server for processing), plus its able to identify products accurately without having to scan their barcode, which is fascinating.
The thing is, Amazon exposed the Firefly SDK but only for their phone's Fire OS. And you can't use it for other Android development.
However, I am pretty sure this is not a hardware limitation, because Amazon has an app called Flow which runs on Android and iOS which uses the same identification technology, so I am sure any camera can be used and not just the one on the Fire phone.
Does anyone know if it's possible to use the Firefly SDK somehow on Android? I know this might be impossible without some sort of reverse engineering for FireOS, but even so at least it would be technically possible!
Thanks for your response in advance.
what do you think about using android in an industrial embedded environment?
I'm thinking, for example, about a vending machine with a touch screen monitor. I can think about many advantages:
It would increase the ease of making an advanced user interface
Android provides tuned libraries to handle task like low power internet connection or encrypted connections
Thanks to dalvik VM, it is easier to run on different HW platform (Arm9 - Arm11 - ....)
but there are also some cons like:
Android is not thought for a mission critical environment (like a device handling money)... at least not to some extent.
If not kept up to date, the software may have some bugs that compromise safety. Issue is worsen by widespread adoption.
Someone might regard Android as resource hungry compared to a real time implementation of linux, with code written in C rather than java.
On the internet you can find some resource on the subject, but most is out of date:
http://www.hsc.com/Portals/0/Uploads/Articles/Android-Porting-on-Embedded-Platform_v2_0633850602027036930.pdf
http://www.androidforembedded.com/whitepaper/android-for-embedded.pdf
anyone has direct experience on the matter or can link me to some resource? What do you think about it guys?
Cheers,
I know of a Swiss company - Noser Engineering AG, which provides development of Android Software for embedded devices. Also check-out their showcase android to market
Android can definitely be used in a non-cell phone device. There will be pros and cons that you can find all around the web, which could be discussed during weeks.
On our side, we have been playing with Android for a while now (from the port of the OS on custom ARM board to app dev) and we see real interest from customers. Regarding reliability, as in any embedded device, it is important to validate it by yourself against the use cases that your system will have to deal with.
Eventually, if cons make you decide not to move to Android, you can have other ways to develop interesting HMI such as QT which runs efficiently great HMIs.
Anyway, you can check out our website (http://www.adeneo-embedded.com) and contact us if you need some help.
Touch screens in anything industrial is pretty much out of the question, believe me. You'd just get laughed at and wouldn't be able to sell it. Luckily, a vending machine isn't an industrial application and there a touch screen would be more suitable.
If you just want a touch screen with some GUI pre-made, there are probably 1000 companies already making such products, no need to re-invent the wheel. It would need to be > IPx5 classed too, if you want to put it outdoors in the rain and snow.
The main challenge for this kind of application is the money transactions, not the user interface. You should start there. What good money transaction software is there already available on the market, and what hardware is most suitable for it? To handle the transactions will be the real software problem for this application. Anyone can make some GUI touch screen fluff and have it toggle some relays or drive a stepper motor.
Also, I reckon the market for this application will mainly need 1) reliability 2) reliability and 3) reliability. The design, user-friendliness, visual appeal and fluffiness may let you sell one machine to a customer, but reliability will make you sell several.
I started developing android applications. And am testing with the android emulator. Do I really need android phone before releasing it for public usage?
Short answer No. You can test and build a android application package with the SDK and an emulator. But I would say there are usually many things which it would be wise to test on a device.
Personally I have noticed that the emulator does not give a good indication of response times for UI controls. It is usually necessary to move functionality which has long processing times into background threads to maintain user interactivity without the 'force close' pop-up. Testing the effectiveness of your UI responsiveness must be done on a phone to be meaningful.
Network connectivity is another aspect which can be vastly different on a phone, 3G or wifi.
Device sizes and Android platform versions can be tested effectively on the emulator.
Some phone allow hot-swapping of the SD card (replacing the SDcard without turning off the phone). I am not sure how to replicate this on the emulator.
There may be many more things which may only become apparent when using your application on a real device. I would strongly suggest to always test under real conditions when feasible for any commercial project.
From a technical perspective there's no reason why you can't develop purely on the emulator. You're not going to be able to test on every available device, so there's always going to be possibility of device specific bugs that you've missed.
However, I'd strongly recommend getting an actual phone to test your application on.
For me the biggest difference between an actual device and the emulator is the difference between using the interface with your fingers and using a mouse. Interactions which make sense in the emulator sometimes don't work as well when you start using touch on the screen. So if you develop purely on an emulator you'll won't lots of little improvements to your UI that would obvious when you used your app on a phone.
You can't feel a real app in your hands until you have a real phone. (I'm telling you as an Android developer)
So, developing w/o real phone is possible, but real phone gives you a lot more experience, fun & usefulness.
It depends on what type of application you're developing, for serious ones you need at least one device to test it on. For complex applications you would need a range of devices, for example with or without hardware keyboard, different navigational button etc. For basic, simple applications you'll probably do fine with just the emulator.
I would imagine with games you would definitely need to test on real devices.
Thanks to you all. I am going to get HTC Legend and test it, so that I can hope that my apps can be used by others :)
You guys suggest me HTC Desire or HTC Legend?
I want to start develop mobile applications and sell it. There are many mobile platforms for which I can begin develop: Windows Mobile , Android, Iphone, Linux based Devices.
I want to find out from people who has such experience which platform more comfortable and more profitable for me to use.
There is no general advice on this.
The recommendation clearly depends on your experience and several other factors. What programming languages do you know? What kind of applications do you want to develop? Do you want to take the risk that your software isn't even put in the corresponding app-store (see apple)?
You have to take several things into consideration. I'll try to make a short overview:
Android:
needs Android SDK
Java as programming language
free marketplace (i.e. no prior control whether your app comes in)
develop on any system you want to
open plattform
furhter information
iPhone
needs iPhone SDK
Objective-C as programming language
prior evalutation of your app before storing it in the app-store
you need to have a mac in order to develop for iPhone
closed plattform
further information
Windows Mobile
developing with .Net-Framework
don't know a lot more about it, but further information can be found here
Other Linux-based devices
take a look at their specifications, they often have an own SDK
Also don't forget about Symbian for Nokia. They recently launched their OVI-Store. And oh, also Palm could become very interesting just after yesterday's news that HP bought it. It's also a nice plattform.
Which one of these is more profitable for you also depends on your skills. Good software will sell good, no matter which plattform you decide for. My recommendation clearly is: Take a look at the SDKs and the needed environments and then compare it with your skills. If you say, you have a good experience in Java development go ahead with android. If you want to do some mac-stuff choose the iPhone.
I'd say the markets with the highes potential clearly are the iPhone and Android markets. I don't know, how Palm will develop now but there could be a big potential in it in half a year or a year.
Currently, the most lucrative platform is the iPhone. The Android is not even close yet. The number #1 selling game on Android is Robo Defense, its entry in the Market says 50,000 to 250,000 downloads, and its price is $2.99. Assuming the price has been constant, that means the developer has roughly made between $100,000 and $500,000 (after the 30% commission has been taken out). And yet, I have developer friends on the iPhone that have made way more money than that, and those friends are not even close to have the best selling apps on the iPhone in their own category.
Part of the problem is the number of handsets out there: according to Gartner, the number of Android handsets won't overtake iPhone handsets till 2012. The second problem is conversion rates: according to Admob, Android users are only worth 60% of the iPhone users in terms of converting from free lite version applications to paid applications (supposedly, Admob has compared identical apps on both Marketplaces).
That conversion rate is believed to be attributed to two factors: the type of users Android has, and the fact that Android currently only uses Google Checkout for its Market transactions (when in fact, it probably should use Pay Pal, not Google Checkout). But that too, should change soon. With the Evvo (from Sprint) coming out, Android will be a great phone, and with it, it will start attracting some of the very top high end users. Also, the Android Market is starting to accept transactions using carriers as go-betweens, so that should help remove some of the steps that it takes an Android user from buying an app (at least, I hope that it will).
And do notice that I didn't even mention the Ovi store from Nokia. The Nokia sdks are still as fragmented as ever. The Ovi store is currently a mess. Its three-star rating system is useless. All apps average to two stars. They don't allow you to upload screenshots. And the Ovi store is so expensive to upload an app to, $50 for Ovi + $150 in certificate signing fees, so it doesn't encourage new developers to even try it out.
Also, I didn't mention Microsoft. Microsoft is a bit of wild card right now. I can't say much about it, except that LG who was supposed to have more Windows Mobile phones than anything else now has more Android Mobile phones than anything else. So Microsoft better get their ass into gear if they'd like to stay competitive in the Mobile arena.
I would recommend Android as it's a growing market. Android development is well documented and newbie-friendly.
You may find these threads useful too:
What mobile platform should I start learning?
https://stackoverflow.com/questions/598252/most-promising-mobile-platforms
Getting Started With Mobile Development
You didn't mention webOS in your original question, but it's worth a look. Has an open development model, like Android, but is based on HTML and JavaScript, so might be easier to get started with if you have experience in Web development.
Here's the Palm developer website
I'm currently developing a small non-commercial game for Android which is based on OpenGL ES. Except for some minor issues (slow as crap emulator being the biggest) I've really enjoyed it so far and would love to continue developing for it.
The question is: What are your thoughts on the future of Android as an environemnt for the game market? I read an article somewhere that said that the IPhone is the preferred platform for games, but since I don't own a Mac and won't bother with some complicated work around to get it to work on Windows I'm currently not interested in it.
So, what do you think? Is it worth spending alot of time (and potentially money) on a larger Android game project?
Short answer: it's too early to tell. Technically this platform is neither better nor worse for games developer than iPhone. Both have some support for 3d graphics, both have good support for multimedia - just the language differs ObjectiveC or Java.
The problem is not in the technical capabilities though, but in the popularity of the platform and purely business decision if Android is a good gaming platform. iPhone certainly is and many people are making money on it already. Will Android be as popular and will people be willing to buy the game for some money is a good question.
There is some difference Android and iPhone users and developers. Android is more open platform and more software is free (or even open source). For iPhone most apps cost 1$.
So the expectations in the audience is different. Android users expect more apps to be free and will (most likely) pay only when software you give them is really worth spending any money at all. iPhone users are willing to pay this $1 even to try an app out, after all they bought Apple product that was expensive to begin with.
Will that trend continue? Or will the audience types converge as more paid apps appear on Android market is an open question.
Finally -- there will be some millions of users of the Android platform eventually. So if you develop a kick ass game it will have its audience anyway. And if Android does not become a platform for games - that may even be beneficial for you, because you'll have no competition.
In my opinion it is worth it.
As #Marcin said, Android is more of a open platform then iPhone. And it's easier for developers to start with developing applications and putting them on the market.
But it means the market is populated with a lot of crap applications. And then, there are really shiny jewels too. They get good scores, are blogged/twitted about and are popular.
So, in my opinion, if you got an idea for a good game, go for it. If you put it on the market though, consider putting (at least a 'lite' version) in the free area (people in some countries are unable to even access the paid applications market).
the below part is completly my own opinion and you can simply skip it
There are some 'cool' games on mobile platforms that I love to play. As for me, there are few important things to watch for when developing such a game, that aren't this important in more 'traditional' gaming, on a console or PC:
it should be easy(fast!) to start and stop. If I play it at a bus, it could be just 1 stop. If it starts right away and then doesn't take 5 minutes to stop it, it's a +
one more thing about rapid start/stop. If I quit the game, then come back, give me a chance to continue where I stopped. No need to ask if I wanna save/load last game. Make it default, I can always start a new game if I want, can I?
controls - even that accelerometer-using games are fun at times, try to play it in a crowded place. like a bus. Touchscreen elements should be large enough so even the thick-fingers can use it. If they are - it's a +
for long time I was trying to realise why playing Bejeweled, or Puzzle Quest, was fun and enjoying, while many of their clones were simply irrytating. The diffrence was a tiny piece of user interface - in Bejeweled the pieces you got are both diffrent colors and shapes. They are much easier to "operate" (in a Bejeweled way) then, say, screen full of diffrent color triangles. If you make a game like this, make the diffrent pieces differ in many ways, not just one (diffrent shapes with same colors would suck even more; red triangles, yellow circles, blue squares and black skulls is a way to go - in my opinion)
it's a mobile device, connected to either WIFI or 3G network, you can use the internet to at least show/save highscores. But - remember - sometimes there's no network, we're in a diffrent country with roaming turned off or on the bottom of the ocean. Make the game work even there
Thanks for the replies!
I myself believe that the marketplace will gain momentum once there are more Android phones on the market, though my biggest fear is that it'll end up like Xbox Live Indie Games were 90% of the games are of below avarage quality, which of course affects it's reputation in the gamer community.
One thing I don't understand is why there isn't some kind of pre-approval before letting the application or game onto the market place. I understand that they want the people not the company to decide what should be allowed to be uploaded, but then they could let the users be the reviewers so that there is atleast some quality checks before release.
The iPhone has the advantage of a huge market (approximately 10x the android one at the moment) and even better most of those users have already given apple their credit card so they are ready to buy. Getting android users to spend .99 is hard. Depending on the game, you can make decent money (50-100/day) off of ads. The first is likely to change with more android phones and more android carriers(Verizon would be huge for the US market)
Technically Android is a bit slower (Java versus Object C) but with the NDK you can get decent performance. The iPhone has better opengl support (1.1 and 2.0 on the GS) while android is more of a 1.0.
There is an interesting article about Android as a games platform on Gamasutra.
Developing Games for Android