Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I have just finished learning application development on android platform, as In matter of language it was easier to understand. However the convention drove me crazy yet simple enough to understand. Now the dillema is I am about to jump in iOS development. Language part wont be hard to understand but I am bit worried about design pattern or use of Xcode.
What challenges I might face which differentiate these two develoment enviroment? And which one is easier to deal with and more productive?
See the "Java" section in this post. Ease and productivity are in the eye of the beholder. Many find Objective C to be incredibly natural and beautiful. Others find it bizarre and frustrating. If you're willing to embrace the iOS way of doing things, you can pick it up very fast. If you fight it and try to keep coding in Java ways (or C way, or C++ ways), then it will be very challenging. The trick is to really work through the tutorials and not just try to figure out "how do I do X that I'm used to doing?" Often the answer is "you don't do X. X happens automatically when you do Y." But the place to start is working through some tutorials.
The Apple documentation is mostly excellent. You should spend time reading through the Programming Guides. Don't just jump to the References. You'll be very confused.
Now i can give you some facts about both that i find really important for clearing your dilemna :
1. Ios development is really costly as it requires a mac as well a hardware device such as iphone to stimulate which costs much more than other phones that you might already know by yourself
2.Android developer have to pay 25$ to become android developer while for Ios it take 100$ per year and your subscription dies after that so yeah again Ios costs much more.
3.Now, swift is used in case of Objective C which is incredibly easy,efficient and I ensure you will fall in love with it(according to me its easier than java itself).
4.Lastly,I myself have worked with the android studio and believe me, Xcode is now easier than android studio(with bugs fixed).
So,the zest is Ios development is costly but its worth learning it and now apple shifting to the new Swift, its super easy now and for the layout stuff don't worry, with time you will get a hang for it
Android and iOS operating system are best at its place. Both are doing good, but it is obvious that one OS can have any feature as pro while other can have it as a cons.
Well, this is my personal opinion that i will choose Android over iPhone for below reasons.
Obviously the first is Price. You can afford a pretty good Android Smartphone with awesome hardware configuration in same or cheap than the price of the iPhone.
Customization: You can customize the way you want like install other OS like Cyanogen and a lot custom Android OS is available over internet (Flexible OS). iPhone is limited to customization. Though jailbreak option is available, but who wants to knowingly spoil that handsome price iPhone. Tons of customized screen launcher available in Android.
Battery: Early battery drain is always the problem in iPhone. Well, battery saving gets better in Android with the Doze feature introduced in Marshmallow. And the good part is, most Android phone’s battery are replaceable and it is pretty easy stuff as compare to iPhone.
Multi-tasking support with multi-window feature and flexible widget in Android.
More free apps as compare to iOS
Custom ROMs. Android gives full control (root) over your phone as compare to iPhone
Memory: In iPhone memory comes at huge cost and no expandable memory as compare to Android. Android supports expandable memory and it does not get that pricey with the increase in the in-built memory
Developer: For those who are willing to develop Application in Android can get the huge community support and can build apps on the affordable hardware rather than iOS. iOS hardware comes at handsome cost as compare the Android.
Well, above are the few points that makes me feel Android is better than iPhone. And no offense to the iPhone users. iPhone is best at its place.
Ref : enter link description here
Related
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
What advantages would a real time operating system like QNX bring to the smart phone / tablet space vs what android and iOS are doing.
Is really going to be more reliable and secure and at the same time providing great performance and security?
Thanks
It's very hard to figure out exactly what RIM is saying when they mean "QNX". Yes, they bought QNX Software from Harmon-Kardon, but it's not like a QNX was selling a tablet OS out of the box.
QNX provides various components for the customers, including but not limited too:
QNX Neutrino RTOS -- a microkernel (with a few variations) that runs on x86/ARM/PPC/etc. The normal development kit for this comes with the RTOS, all the standard UNIX/Posix utilities, a Windows or Linux IDE based on Eclipse, and a GNU toolchain. You can buy it, and bring up embedded platforms and write C/C++ code to your heart's content.
On top of that, QNX provides various packages that provide other features. They've got Photon, a X11-like windowing toolkit to make GUI apps, but it's really limited to making old-school UNIX apps. They've got a Core graphics toolkit which allows for low-level OpenGL accelerated graphics. They've got some Flash-running compositing toolkits for general purpose UI stuff. Then, on top of that, they've got some toolkits and packages aimed at cars.
So now, when RIM says "We're using QNX", it's unclear about what they're using. The kernel, sure, a lot of the underlying OS, sure, but the entire User Interface doesn't really match up to anything that QNX has publicly provided to date. I consider that part of the system the most critical for user buy-in. Comparing the details of the iOS kernel vs the Neutrino kernel, while interesting to some, is mostly irrelevant to the product itself.
I think that discussion is touching just some very high level capabilities of QNX.
Some of important things:
This system is very mature from all points of view. It doesn’t have issues on kernel level and uses completely different architecture vs. Linux.
One thing is that you don’t need to rebuild kernel if you change something on drivers level or something like that.
System is much more stable and doesn’t have crashes on kernel level.
You don’t need to take tricky procedures to balance multi threads solutions as it is in Linux.
You have fault tolerant system by default and other things. Just read QNX capabilities in white papers.
UI and Applications part for Mobile devices (smart phones, tablets) still be architect and implemented but it tem of time only.
System is really scalable from single chip microcontroller up to Cisco variant and full Airport Control System 24/7 (London )
Linux CANNOT be scaled this way at all.
So will see next two years...
QNX has made their first attempt to enter in Tablet Market which I believe is not bad. But they have always been a pioneers in developing support systems for any hardware like emended systems on aircraft Industry (including F-16), auto-mobiles and other industries.
I have used Playbook, I believe its wonderful, touch is amazing better than apple specially with all-side touch swap option leave no room for buttons. Its microkernel architecture protects every application, driver, file system, and protocol stack in the safety of memory-protected user space. As a result, multiple third-party applications can run simultaneously on the RTOS without corrupting one another or the RTOS itself.Furthermore, its will be like first Multi-core / Multi Tasking Tablet and the best part is that Now Android app's can also be installed and run on Playbook.
QNX is quite a bit heavier than Android IMO, so it will take something along the lines of the HTC Vision (TMobile G2) to get it running smoothly with modern software.
Funny enough, one of the airlines I worked for in the early 2000s ran their pilot training flight simulator, which had a complete 2 seat cockpit with QNX and an ancient 386 + coprocessor. Most smart phones would kill that machine.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Note:
The VM mentioned in here is not like in VMWare or VirtualBox, it is more like Java Virtual Machine (JVM), (as well as Python and Ruby).
That is, the fact that objective c is an interpreted language, should make it easier.
For a long time I wondered if the following idea worth a nickel or just a waste of time and energy. I am willing to start a project which will provide a kind of a VM for all iPxxx apps - so developed once for iPxxx can run on a Macbook, iMac, Linux, Android and windows (desktop and mobile). You get the idea, right?
I want to do to the current iPhone SDK, the same as what Mono did to Microsoft .Net and perhaps a more complete set of implementation.
I tend to believe that if overnight all apps on appstore become available on the android market as well that would be a mini revolution. Think about running iPad apps on every tablet that will come out to the market in the future.
Wouldn't it be fantastic to all the developers, which from now on, can write once and sell everywhere?
The main questions which I ask myself repeatedly is: "Is This Legal?" - I mean, say I have done this, would apple's lawyers will start sending me all kinds of nasty emails?
I am willing to hear your opinion about this idea as well as if some of you willing and able to join forces and start this open source project.
There is not much benefit in porting from phone to desktop. While that is essentially a freebie once you write the VM, it is not compelling in itself. The touch interface does not always work well with a mouse.
The reason to write it would be to add 100k free apps to android. I say free because there would be no reason to buy them, since you could just copy them. The VM would be equivalent to a jailbroken phone in terms of piracy.
Legally, I think you would have no better standing the psystar did. If you are making a pure VM, then you are installing Apple OS on unlicensed hardware. I am no lawyer, but I cannot imagine they would embrace the project. You could also try to be like Wine, implementing the entire OS from scratch.
As far as the actual feasibility of running apps in a VM on Android, I would have low expectations. Apple hardware is better than average, while Android hardware covers a wide range. Many apps would run poorly or not at all on a lot of the android hardware out there, even if there was no overhead for the VM. And there will be overhead for the VM.
I think this task is not a trivial one. Implementing a VM (Java?, Inventing your own language?) is not an easy task. Every VM implementation has tons of hours of design and development carried out by many skilled engineers. Even if you attach to standards (i.e. you could maybe implement a Python interpreter) instead of reinventing the wheel, this is sure a lot of work (at least for a one-person-project). Moreover if you try to implement a new approach (language?) you need to take programmers into account. How would you make your language/platform popular enough to let programmers create good applications?
On the other side (leaving legal issues out, that there surely be many), instead of thinking big, haven't you wondered how would you distribute your VM installer? I do not know iPhone very well, but as far as I know you can only install applications through iPhone Market. If your VM simply does not make fun to Apple it would be turned down with the ease of a click. No matter how many hours have you invested in your project. And no matter what you fight, if Apple doesn't like it, game over. Look at Flash for instance. They are just pushing to get what you are trying to do (or just already did) with Flash 11. What happened here? Apple doesn't want to let others take a slice of control of their platform. Game over Adobe on iPxxx. Do you think that what a big Corporation with gazillions of users, money and lawyers like Adobe couldn't do, would be feasible for a bunch of passionate programers employing a few hours of their spare time and little or no financial/legal support?
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
not much of a programming question, but development related still,
I'm starting Android development and have been at it for just a little over a week. So far so go regarding progress, specially for someone who hadn't touched Java in his life (but have good C#, Objective-C, VB.NET and Fortran experience)
As I'm looking into a testing device I'm undecided on the phone to get. I need it to be unlocked, so I'm looking into Dev Phone 2 or Nexus One. The difference being $120~ish in price.
Anyone having one of those and using it for development? which do you consider is the best choice. Is the extra speed and screen in the Nexus One worth it?
I'm targetting SDK 1.6 but down the road I can see myself playing with 2.1.
Any input is appreciated
Regards
Something I learnt today was not to let a developer work on the faster model of mobile device when most of your users have the slower model. If it's good on the faster one, it's not always good on the slower device. I'd get a retail G1 as they can be flashed to all kinds of Android revisions. Plus they'll be cheap.
If you go for the Nexus 1, your apps will look better but only to Nexus 1 owners, mostly!
From what I've heard all Android devices are going to get a bump to some form of 2.1 in the future. The specific feature set of each particular build would depend on the hardware capabilities of the device. Neil makes a good point about speed and polish but with a device like the G1 (which I have and love) you will yourself to be limited by the hardware whereas with the Nexus One you can choose to limit yourself or you can choose to develop Live Wallpapers!
Also, you've asked 7 questions and haven't accepted any answers. If you keep that up you'll soon find that people are less willing to spend the time answering your questions.
If you want a test device go for the g1. If you want a good android phone for everyday use go for the droid or the nexus one.
For development be careful which carrier you buy the phone from, some of them like AT&T will change them to forbid installation of software from unknown source etc. to enforce the market. Those are pretty useless for a developer then.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I was reading an article based on Mobile Development in 2020 and run into such a pessimistic claim:
"But the economics are a different
story. The ratio of those developers
who will fail is about 90%; they will
simply not make a return on their
investment or make a good enough
living at this," said Mr Laurs.
He said that will result in developers
taking their talent elsewhere and also
slow down the rate of growth in
applications.
Do you think it will be just another hype so that the majority of the developers will have to switch to something else? or What might be the driving force behind this?
Ps: I hope my argumentative question doesn't violate SO rules.
Thanks.
I think his definition of "fail" is a bit too broad. I've worked on a lot of projects that I've never received any direct return on my investment and I haven't considered any of those to be "failures". Sure, I didn't get filthy rich from them but I gained a lot of experience that I'm able to put down on a resume or convey during an interview. I think he's just being overly pessimistic about how the industry works.
EDIT
I read through the article some more. I do think he's right that the amount of new apps flowing in will die down but that's just because the market will be saturated with all the obvious ports. As with any new web technology it's a "fastest gun" race to make IRC clients, tetris games and of course, pac man. I still feel he's acting like this is a tragedy of some kind. I think this will be a much more exciting time when we'll see developers with immensely creative ideas finally come out of the woodwork when they're not afraid of their applications getting lost in the crowd.
It's the basic concept of supply and demand. There's a huge demand for mobile applications now, with the mobile devices evolving to a state that you can actually do stuff (mostly bigger display and higher processing power). It is not a market that is mature now, so there are a lot of opportunities - explaining the big number of players joining the game.
As the market matures, big players are going to stand out, making the competition tougher, so I think it's save to say the single players will have a harder time competing.
The market is going to stabilize at a point in time. For now it's growing fast and there is still place for it
I dont really see the hype over mobile development. So far (with some exceptions) the overwhelming majority of applications I've seen can be split into 2 categories - games / toys, and apps that are simply front ends onto existing websites (for example the facebook app).
Other than games, the number of applications that actually do anything in their own right is astoundingly low (london tube map applications are the only ones the spring to mind), and the majority of the rest of the apps very little user experience improvement beyond basic "offline mode" functionality.
Personally I see the majority of future of mobile development as being web based, with improments to mobile browsers and offline browsing. If the in-browser experience is good enough, and users are able browse downloaded cached copies of websites then the owners of those sites wont need to invest in mobile development across the 3-4 different platforms available, which is comparatively more expensive than web development.
The exception of course being games and toys - the web isnt really a suitable platform for these. At the same time the sorts of users who are going to buy games are probably the same people who already own smartphones, so I cant really see this market growing massively without innovation on the part of the game authors.
The other exception being applications that require access to things like the camera or microphone (and to a certain extent GPS - there is no reason why location information cant be sent to websites by the browser). However once I cant see there being a huge number of applications that fall into this category.
When the browser doesn't win, Android is close behind. Camera designers, threatened by cellphones with good lenses, started putting Android on cameras, so now you can run Instagram on a Nikon. Does that make Nikon a computer company now? Does it even matter?
There are Android refrigerators, car stereos, watches, televisions, even headphones. Some complain that the UI is too complicated because it can do too much, but that's missing the point. The UI layer can always be simplified. If Android is running underneath, the platform will dominate.
It's going to get even more complicated. PC manufacturers are looking at the burgeoning tablet world and feeling left out. Their solution is to run Android on Windows and let people use their Android apps on their desktops, too. Some just run the stock Android emulators used by programmers, but others are looking beyond that to create brands like "PC Plus." Once Android takes over the PC, it may combine with the browser to push Windows native apps into a distant third place for mindshare on the box
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am very interested in mobile application development. But which language or framework is more popular, useful and usable?
I know Java well. If you have any idea and/or experience, please help me to take my decision.
J2ME is much more popular than Android - many phones of many vendors (Nokia, Sony Ericson, Motorola, LG, Samsung and more) have it, and you can deploy application to them. The price is limited capabilities and no consolidated distribution channel (for the moment, Sun is talking about the Java Store).
On the other hand, Andriod has much more capabilities, its API is closer to the Java API, and it has more capabilities, but there is a limited number of phones. Also, you have the Android market as a distribution channel.
If you can describe what you have in mind, I can elaborate more.
Added Information
The J2ME market is quite large, but Android is rising fast - it is a true smartphone, a segment which has become more and more popular in the recent years. According to job trends, both are have roughly the same demand now:
I've dabbled in some J2ME programming, but right now I've written about 4 Android apps.
My observations:
The Android API is a lot of fun to use. J2ME is showing its age. For example, a JSON parser is built in. And you have access to SQLite. Android's SQLite access code is like an amalgam of lessons learnt from Ruby on Rails, REST and plain-old SQL.
In terms of deployment numbers, there are more J2ME apps than Android apps. However if you want to enter the smartphone market, Android is second in mindshare to iPhone (BlackBerry is reinventing itself, but its API is still looking like a J2ME++). Read this article.
The whole platform is open source. So learning it and mastering it is easy.
I think you're missing an important fact: Android is not only a platform, but also brings with it a fully fledged application framework which continues to grow and gets backing from some very big players (Open Handset Alliance). J2ME is just a stripped down version of the Java platform. That's a major difference.
Having worked with Android since over a year now, I can definitely say that is has grown into a very powerful system and decent tool support.
Only Android Can Catch the iPhone
There are something like 20 Android phones coming out before the end of the year.(*)
Networks like Verizon that ship only deliberately-crippled handsets will be hard-pressed to win sophisticated consumers. Their customers mostly make voice calls and text each other, to get fancy they might run Song ID or VZ Navigator.
I think the issue is: which phone owners actually d/l and use the apps? The walled-off Verizon customers, not so much. Right now, the action is in the iPhone, but I think Android might catch up.
(*) Here is just one.
I have to agree with others on shying away from J2ME development. I have a Motorola RAZR V3xx that I've used for a few years. It is as standard a J2ME-supporting phone as you're likely to get from most carriers. I decided to look into doing some J2ME development for the phone to give myself some helpful utilities.
Long story short, there is a reason you pretty much only see games on J2ME phones. Unless you are willing/able to shell out big bucks for signing certificates, you cannot even access the most useful APIs available on the phone. Things like File IO, PIM (contacts, calendar), Bluetooth, etc. are simply blocked unless you get your application signed using a carrier's (AT&T, T-Mobile, Sprint, Verizon, etc.) special certificate. And the cost of these certificates can easily exceed hundreds or thousands of dollars. Putting this simply out of the range of your average hobbyist.
I could go on, but a couple of sites have covered this topic in much greater detail Here and Here.
For me, this pretty much means I will be targeting the Android in the future. The iPhone is also a good place to be targeting. The current state of J2ME on handsets here in the U.S. is just not worth my time for pet projects. Which is disappointing, as most of these phones are capable of doing many useful things otherwise.
It depends on what you mean by 'popular'. If you are counting in terms of installed handsets, then J2ME wins hands down. As far as current installed handsets, Android has few mobile phone companies and only recent mobile phones (whereas J2ME has been around for the last six odd years).
However, that doesn't make working with J2ME a nice-to-have. Sadly, each manufacturer cripples it in some way, and not all phones with the J2ME badge are equal; some are more equal than others. MIDP, MIDP2.0, CLDC, CDC ... the list of acronyms goes on. And when you buy a phone, it has 'Java enabled' without actually saying what it is that it supports, so even the customer doesn't have a clue.
Despite its large installed base, J2ME remains fundamentally unpowered for the world's current generation of mobile phones; the upgrade path is usually non-existent (though it's the manufacturers to blame for that, unfortunately) and you can't even do things like access Bluetooth or contacts in any useful way; though extensions have been proposed for J2ME, they've never really lived up to the expectation of write-once-run-anywhere.
Whether Android goes down this route as well remains to be seen - the biggest concern is manufacturers are trying to 'do their own thing' (e.g. Motorolla's BLUR UI) which will further fragment the market.
Lastly, don't forget that it's in the handset manufacturer's interests for you to throw away your old phone and buy a new one every year (or two). Support, bug-fixes, and generally upgrading your old phone's software, though technically feasible, never happens. I had a P990, and despite a few rounds of updates, it remained as buggy as hell (which is why I ditched it for the iPhone when it came out).
So, from a programming perspective, Android is better than J2ME. For reaching many handsets, J2ME is better than Android. For general user interface and power, choose an iPhone.
Android and J2ME aren't exactly similar in their scope as platforms, in a way, it's like comparing apples and oranges.
When we talk about Android, we are talking about full-blown mobile OS, with much more extended capabilities than J2ME. It could be used for pretty much everything you can think about - system utilities, social network services, location-based apps, games, etc. Android has also richer UI kit and lots of available source code to learn from.
In Android you have access to many APIs, designed to be used in modern smartphones, and these APIs are being refined constantly, while J2ME has started to feel aged, and is concentrated mostly on graphics.
The penetration rate of J2ME is currently bigger than Android's, and by bigger I mean much, much bigger, but business analysis doesn't end just with number of handsets of the given platform.
If you have idea for a great app, you'd better do it for Android and/or iPhone OS - it will be easier for you and you'll be reaching to users that are more likely to need such app, and that are more likely to pay reasonable price for it.
Overall, I would recommend to start with the newer platform, even if only because it would be more interesting and a better learning experience for you.
While there is no shortage of 'feature-phones' supporting j2me in the wild, I suspect third party applications get very little market 'traction' because the users aren't looking to install new software on the phone.
Android is a breeze to develop for. I think you should try it.
There is no harm in getting the SDK and experimenting for a few hours..
J2ME is very popular because almost every phone can run these applications.
Android on the other side has just few phones and netbooks supported, but Android API/SDK is more powerful than J2ME. Android phones come with great hardware and you'll have the opportunity to work with all these "cool" touch screens, gps, accelerometers, etc. It's still in development, but I think it has a future.
From my point of view, Android is more and more better than the J2ME
Learn Android and enjoy... we have lot of fun while developing the Android apps
J2ME apps look and feel and development environment not effective compare with the Android
J2ME is the most popular. Because many mobile phones have a support for J2ME. J2ME's main advantage is that it belongs to the Java family, it is open source and widely supported by various kinds of devices.
Many mobile phones and other devices support J2ME due to its simplicity, easy to implement, etc.
The J2ME is the base for Blackberry,Android,etc.Because the others (other than J2ME) are developed after the J2ME.After eliminating the tough concepts in j2me,using some j2me concepts they build their environment like android,blackberry,etc.
J2ME is very old .It have many drawbacks,limitations,etc.
These drawbacks are overcomed in the latest technology like android,blackberry,etc.
J2me is good .It is old.It have many disadvantages,etc
Android overcome that disadvantages.Android keep on growing
The general java feature "platform independent" is failed sometimes,some scenarios in J2ME.
Android is new technology.It have many features,etc than J2ME.
Developing an application for android devices is simple,easy,etc.
We need ot get the pay liscence for developing application and deploying (applications) into the device.
The android SDK is obtained by free versions.
My opinion is Android is better than J2ME.