As you may all know (if not, click here), Apple has finally decided to allow apps created using Adobe Flash CS5's iPod Packager on the store. Owning a PC and not a Mac, this is great news for me as I longed to give a crack to iPod development.
I did try to use a fake certificate (yes I admit it) to publish an app and test it on my brother's iPod Touch (running on iOS 4.0), but the app wouldn't install. Is it because the iPod detected the certificate, or does he need to update his device?
My real question, however, is if it's worth paying 99$ for a developper certificate or not now? I was leaning towards the idea but the restriction has just been relieved (if you'll allow me the expression).
Thanks.
-Christopher
I've done quite a bit of AS3 Hacking along with Objective-C hacking, and on a surface level, the workflows are somewhat similar. There are plenty of differences, for instance the syntax has quite a learning curve, and creating UI elements is a breeze in Xcode, and has to be done by hand in flash (unless you like the way flex looks), whereas tapping into opengl and even using core animation can be daunting to a flash developer used to animating things around the screen.
This is important, because I really don't think it's worth the $99 unless you plan on developing in Xcode. A ton of the power of being an apple developer is in that amazing IDE, and missing out on that makes iOS development sound terrible.
There is however, 1 reason I would still buy it: if you already have an app you'd like to release, and all you want to do is get it on the app store. If you have a game you'd like to try releasing, it's absolutely worth the $99. Even if you were to develop it in Obj-C, there's still no guarantee it'll make it through the apple approval process, so you're not really risking much more than any other developer. What you wouldn't want to do is pick up the certificate, then sit on it and wait for it to expire while you're working in an IDE that has no relation to the program.
Buy the certificate if:
a) You already have a mostly-complete app you'd like to release on iPhone.
or
b) You also plan on setting up a Mac dev environment (and probably not until you have it set up).
Don't buy it if:
a) You don't plan on buying a Mac, using Xcode, or releasing an Obj-C app.
or
b) You are just toying with the idea of making an iPhone app, and haven't made any steps towards it yet.
I would definitely not base your decision on if apple will rescind it's decision or not - it's unlikely that they will not allow adobe packaged apps without good reason, and even if they do, it's the same risk any developer takes when making an app for release on the apple store. Apple can just deny it if they feel like it, and there's not much you can do about it.
Think of the $99 as the cost of the privilege to submit an app to apple for review. Even if you plan on developing on a Mac, Xcode is free, and there's no real reason to get a certificate unless you plan on testing on an iPhone or releasing your app. If you're still in a planning stage, skip it until you're ready to go.
I was wondering the same thing. Looking at the way the Android vs. Apple app thing is moving, I'd say yes -- it's worth paying $99/year to be a real mac app dev.
However -- I don't think that developing on anything other than a Mac with XCode is worthwhile.
Adobe Flash Builder (used to be called Flex) 4.5 also exports to iOS apps ( http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html), which is great and all, but the fact of the matter is
A) it requires the Adobe AIR runtime to be installed on the phone
B) memory management is a totally different story between as3 and ios
The result of an auto-conversion is bloated file size and poor performance (see comments here: http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html). and related issue here: Size of the Flash Builder 4.5 application after packaging with iTunes
Not to mention there is no reliable emulator for iOS that you can legally get your hands on... I actually just got a mac mini and XCode -- mac mini ~$500... but XCode is a great SDK, and the emulators rock.
If you're serious about developing for the iPod I would get the developer license and at least a cheap Mac Mini. If you actually develop something you want to release you'll probably want it on the app store. It takes some time to get the license so you should just start the process.
If you like to tinker and don't plan to release anything (or don't want to have to use an app store) playing with Android might be more to your liking. There's no cost to get started or to put your apps on your own device other than actually having an Android device. (The same might be true for Windows Mobile, would have to double check).
I think, yes. It is still worth paying the amount...
Related
Do I need to buy Iphone to develop Iphone applications on MacBook Pro? Or is Iphone SDK for the job?
Thanks.
Technically no, but obviously it would be handy.
Xcode provides an iPhone simulator that can handle most testing (but without support for accelerometer or microphone).
All in all, if you plan on doing iPhone development seriously - get an iPhone.
Technically you could use the emulator with the SDK but you really want some raw devices to test on due to subtle differences.
The iPod touch does a great job for testing apps on a real device. Its performances are very closed to the iPhone and it is much cheaper.
Technically no, unless you building apps related to accelerometer, microphone, sms or auto calling applications. The SDK comes with the iPhone simulator which is more than handy
You can use the Xcode iPhone simulator as well as the iPad simulator to test your code, all of which is free. The only issue will be accessing certain filemanagement which cannot be debugged on a simulator. However, you must have a computer running on Mac OS X and a valid Apple ID to download Xcode. Finally, in order to submit Apps into the App Store, you must buy a $100 developer's license with Apple.
Hope that help! And iPhone development is a ton of fun :)
Thommy
I highly recommend to get the device you're developing for. Since some issues will only will only come up by really using your app as intended.
The touchscreen and it's behavior for example can't really be testet in the simulator. If you want to do more than the next "Fart App" you should invest the money in at least one actuel iOS device.
I will speak from personal experience with a financial prespective
Can you afford it or is the short term compensation from the work going to cover the cost? The latest models are pretty expensive, so I would suggest looking for good deals on models that are a couple of years old. When I say short term, I mean 3 years or less. Because after that, there is a good chance that you are going to need to buy a newer model to take advantage of the SDK features available at that time.
Even if you can afford it do you need it immediately? Are you soon going to be developing features that are completely dependent on hardware and impossible with a simulator ? If no please push the purchase further down the line, by which time you would have made some money (or not) and you can buy a newer model.
Having a latest device gives you the freedom to try out and build apps using the latest SDK features that Apple rolls out, so you can stay ahead in the game. On the flip side, it would be good for development only as long as at least one of the apps that you are developing for runs the highest version of iOS supported by the device at any particular time. For example I bought an iPhone 5S some years ago and now none of the apps I am working on run on iOS 12. So I have very little use for it. Ah I guess the vicious upgrade cycle gets developers too :(
My boss wants me to develop some apps and make them appear on the AppStore.
This is a very small company, he paid the iPhone developer program fee and I am responsible for the rest, I have full access to the account.
I've finished the development on my mac using the simulator. But now I have to test the app on an actual iPhone before it's submitted to the AppStore for review.
The problem is that my boss and I both do not own an iPhone and do not have much money to buy one.
My friend has one and he can test the app for me if I can provide him with a way to download and install the app (his PC has Windows XP and iTunes installed), we live far from each other so it's not feasible to borrow his iPhone and have it directly connected to my mac and run the Xcode to do the testing.
I am going to skip the Development Provisioning Profile stuff and directly jump into the distribution stage.
I would like to know whether the app file created in the distribution stage (the one to be uploaded to AppStore) can be copied into a Windows platform and have it installed on an iPhone.
I'm not sure why you want to skip that part of the process, since that's how you'll test your app on an actual device, before getting to the App Store approval process.
If you log in to the Apple iPhone Developer Center, you can click on the Provisioning Portal link to download the Program Guide.
Within this PDF, go to the sections "Assigning Apple Devices to your Team" and "Creating and Downloading Development Provisioning Profiles" to learn how to build a copy of your app that can run on test devices.
What you're looking for is ad-hoc distribution, which will allow you to hand this application, along with your provisioning profile, to your friend and have him install it in iTunes under Windows. You will need to get the device ID from him first (found in iTunes when the device is connected) to create the proper provisioning file. Apple has thorough instructions on this in the iPhone portal site.
That said, this is a terrible way to do iPhone development. First, not owning an iPhone means that you are probably not familiar with its application UI conventions and how the device behaves in day-to-day use. Things that seem like good ideas when working in the Simulator, which is a mouse-driven environment running on a nice, large monitor, turn out to be unusable on a portable device.
The device also has vastly different performance characteristics than your Mac does. Your friend may be able to point out a few things going wrong, but you really need to hook the device into your Mac and run your application while monitoring Instruments for memory consumption, CPU usage, and other parameters that might point out leaks or other subtle problems. It is for this reason that I spend days hammering on each version of my application on the device before submitting to the App Store.
If you are at all serious about iPhone development (which, judging from the line "develop some apps and make them appear on the AppStore", you are), you need to at least pick up an iPod touch for development. If college kids can pay for one to develop applications on, your company certainly can. Check eBay, where I'm sure people are offloading first-generation models for relatively cheap.
Like #Brad Larson said. Get a iPod Touch, I see some 1st gen ones on ebay for $90. Realistically if even a new iPod Touch is too much money for your employer then I'd start looking for a new job. If an employer is too broke to buy you equipment to do your job that costs less then 1 day of work for you it won't be long before they can't pay you. Been there and still trying to get back pay...
I may just be looking in all the wrong places, but is there no way to compile a Cocoa Touch application for ARM without paying for a developer account and certificate?
EDIT: To clarify: I am trying to build for a jailbroken device. I simply want to test code on-device without paying for anything.
You're not going to like this answer, but I and everyone else on SO will tell you that developing for a jailbroken device is 10 times worse than developing legitimately with a developer account. It's not really that expensive, and if you don't have a mac, a low end Mac Mini isn't all that costly either. If you would just want to get some mobile handset practice in, might I suggest developing with Google's Android. The SDK is free and you can get a nifty plugin for Eclipse that has a device emulator as well as a GUI builder. The only downside is that the device support is minimal at the moment. But hey, you can be on the bleeding edge of a technological revolution.
Unless you have jailbroken your iPhone/iPod Touch an Apple iPhone Developer account is required.
Is Android development restrictive in any way like the iPhone, or can you download whatever and from whoever you want?
I want to learn about development for either iPhone or Android, but from what I hear iPhone development is pretty restrictive!
There are a variety of areas to consider regarding the relative restrictiveness of the two platforms.
The Market
Android Market is undoubtedly less restrictive than the App Store when it comes to the submission process. The upside is that you can get pretty much anything you want into the Android Market. The downside is that you can get pretty much anything you want into the Android Market (a market flooded with spam "applications" is in some ways a restriction).
A big negative on the iPhone side is the fact that your options for installing applications that are not in the App Store are limited -- you can either distribute the application as a beta (limited to 100 users) or jailbreak your iPhone. Android, however, allows you to install apps from anywhere, including a web page.
The Applications
One of the core design philosophies of the Android platform is "All Applications are Created Equal", which is supposed to mean that you can freely replace applications on the phone with a third party version. In practice this is not really the case, as many of the Google applications either have special capabilities not available to most applications (see: Android Market) or use undocumented/native APIs (see: Calendar).
The iPhone on the other hand makes no such claims about equality, and the Apple stance in general is "There is only one way to do it, and that is the Apple way". Additionally third party iPhone applications may not run in the background while Android applications can. New for iPhone OS 4.0 is the ability for apps to run in the background. One thing iPhone applications can currently do that Android applications can not is receive push notifications. New for Android 2.2 is the ability for apps to receive push notifications via something called the Android Cloud.
The Source
Android is open source - mostly (some firmware components are closed source). Even so, there is some rocket science involved just in getting the Android codebase to compile. In addition Google has sent cease & desist orders for redistributing custom images that include the Android Market and Google Maps application.
The iPhone is completely closed source, and recent changes to the developer agreement have been controversial as they mandate that all apps submitted to the app store be originally written in "Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs"
The SDK
The Android SDK can be freely downloaded; the iPhone SDK requires free user registration to download. Android development can be done under Mac OS X, Windows or Linux, while iPhone development is only possible under Mac OS X. You'll also need to pay for the $99 iPhone developer account if you want to test your software on an actual device (rather than the simulator).
The Userbase
And last but certainly not least, the userbase. When this answer was originally written the iPhone had a much larger userbase and was growing much faster than Android. This is changing as Android begins to support multiple carriers and hardware platforms (see: the Open Handset Alliance). The list of devices running Android is now quite long although none yet match the popularity of the iPhone.
Some analysts are now reporting that Android is outselling the iPhone and are predicting that Android will soon overtake iPhone for market share. Other analysts think that Apple will make up ground when the iPhone 4g is released. The former seems more likely based on the parallel history of the PC industry -- Apple's design and user experience were copied by GoogleMicrosoft and opened up to run on commodity hardware.
Nope! That's the beauty of Android. Even though there is a AppStore equivalent, you can download an app from anywhere. Plus, it's programmed in Java, so you don't have to worry about all that mundane stuff like garbage collection (just at the cost of speed).
Don't mean to insult the iPhone. It is a great platform too.
EDIT: A lot of people have been noting that the iPhone APIs are not restrictive, but rather the approval process is. This is true, however the iPhone's APIs are still somewhat limited, in the way of low level hardware access, backgrounding (only notifications in 3.0), etc.
iPhone 3.0 is a step in the right direction, but there is some work left to do.
Also, have you considered making JB iPhone software? I'm not sure of it's market share, but I do know of a lot of people with Jailbroken devices.
EDIT: I have read in some more posts on similar questions that Android's Java can slow things down due to the Garbage Collector. Just something to watch out for.
If you say iPhone is restrictive, I would describe Android as immature.
There are still many bugs in Android that you will inevitably run into if you are doing some none-trivial programs. Some of those only exist on the emulator while others only on the actual phone.
Though in my experience, developing on Android with Eclipse feels just as good as developing on iPhone with Xcode, if not better. The tool set provided by Google is very complete and is cross-platform. Garbage collector does make huge difference while programming.
I'm assuming you already have a Mac otherwise the iPhone wouldn't be an option at all.
iPhone development isn't particularly restrictive. Getting the resulting app on Apple's App Store is the restrictive part.
If the app you're working on follows Apple's guidelines on what an iPhone app is allowed to do, picking that as your initial development platform seems a no-brainer. If it violates Apple's guidelines and can't be modified to follow them, your market will be restricted to jailbroken phones - a very small subset.
Well is Apple open at all? Uhm.. eh.. no. Closed hardware, closed software, closed everything. I think Alcatraz is more open then Apple, at lease you get to leave your cell there.
You can write an application for the iPhone. Will it get approved? Well not sure. They could deny it for any reason whatsoever. You may have used a blue background and Apple only likes white and gray, thus deny.
However with Android it is completely open. You can develop for it, or even develop Android itself. No fear of ever being denied.
But in all seriousness. Apple has a larger market share, millions of people use and love the iPhone and they will most likely not be leaving for quite a while. While on the other hand the Android was for T-Mobile. Does anyone even use T-Mobile?
IMO if you do not have a gPhone I would develop for the iPhone. However as much as I dislike the Apple philosophy of being such a closed nature, they are the better bet if you wish to make some money with your application.
There are some restrictions...
some functionality requires rooted phones (e.g. Wireless Tether for Root Users)
distribution via the Android marketplace is subject to the Developer Distribution Agreement. Google limited access to this tether app due to their carrier agreements.
some Android APIs are not finished (e.g. Bluetooth HID)
'Restriction' can mean two things:
The ability to install anything you want. Google is very good at that, Nokia somewhere in the middle and Apple is the worst
What you are able to do with you app. They all have arbitrary restrictions on what you can and can't do, but it seems to me Nokia is the least restrictive, Google inbetween and Apple the worst (again).
YMMV
No, you can sign the application yourself and distribute the resulting APK file via your own web server or by other means.
Yes, Android is indeed open and you can publish whatever you'd like to the Market Place
But:
you still need to learn how sign your application and mind the technical posting requirements to the market (like keeping proper version IDs etc.)
if you really want to get/send a package from/to anyone, then the receiver of the package (called an APK file will need to know how to use a command line tool called 'adb' to administer their phone to install & uninstall applications. It's pretty simple to do, but
you need to have Android drivers installed and the SDK tools.
To be fair to the iPhone development model, you can also distribute test versions of your application reasonably easily, though perhaps not as easily as with Android. Your testers need to provide you a special device ID which they get from iTunes while the device is connected, then you create a license file containing keys for all of your testers which you distribute with the release directory of your application. The users then install your application via iTunes.
In most cases no, but Google has allowed the carrier and the device manufacture the ability to restrict certain things. Carriers are allowed to block individual apps. Also carriers/manufactures can prevent certain features of the device.
One example is the Motorola Backflip, it wont let you install non Official market applications. Also some phones do not have access to the Official Market.
I know there is no official SDK for Windows, which is very annoying. Is there any way to develop applications on a Windows computer, other than somehow running a Mac OS in VMware? I know you can do it with Xcode, but that is also only for Mac OS X. Google searches have revealed absolutely nothing.
If I cannot use the SDK or Xcode, is there any way I can just check syntax or something and just make my code in Notepad and save it with the proper extension? I have no idea whether or not I would be able to do that, probably because I have never even tried the SDK and probably never will without buying a Mac.
I looked into this before buying a Mac Mini. The answer is, essentially, no. You pretty much have to buy a Leopard Mac to do iPhone SDK development for apps that run on non-jailbroken iPhones.
Not that it's 100% impossible, but it's 99.99% unreasonable. Like changing light bulbs with your feet.
Not only do you have to be in Xcode, but you have to get certificates into the Keychain manager to be able to have Xcode and the iPhone communicate. And you have to set all kinds of setting in Xcode just right.
You could easily build an app using PhoneGap or Appcelerators Titanium Mobile.
Both of these essentially act as a WebKit wrapper, so you can build your application with HTML/CSS/JavaScript. It's a pretty portable solution, too, but you are somewhat limited in what you can make - i.e, no intensive rendering or anything. It really all depends on what you're looking to do.
You could do what saurik of Cydia does, and write your code on a PC then build it on the iPhone itself (it is a Mac, technically!) after you jailbreak it. However, you don't get Interface Builder, so you're basically creating UIs in code by hand. It'd also be pretty tough to actually submit your app without a Mac.
No, you must have an Intel Mac of some sort. I went to Best Buy and got a 24" iMac with 4G RAM for $1499 using their 18 month no interest promotion. I pay a minimum payment of something like $16 a month. As long as I pay the entire thing off within 18 months - no interest. That was the only way I was getting into iPhone development.
There is another solution if you want to develop in C/C++. http://www.DragonFireSDK.com will allow you to build iPhone applications in Visual Studio on Windows. It's worth a look-see for sure.
Technically you can write code in a .NET language and use the Mono Framework (http://www.mono-project.com/) to run it on the iPhone. I haven't ever seen someone do this from scratch, but the folks that write the Unity Game Development platform (http://unity3d.com/) use it to make their games iPhone-compatible. The game itself is written in .NET, and then they provide an iPhone shell with the Mono frameworks that allows everything to run on the iPhone. I don't know whether they've contributed all of their modifications to Mono back to the open-source repository, but if you're serious about writing iPhone apps outside the Mac environment, it might be possible.
That said, I think you could dump weeks into getting that to work, and it might be best to invest in a Mac instead :-)
This really comes down to how much you value your time. As the other posters have mentioned, there are a couple of ways you can build iPhone apps without a Mac. However, you are jumping through serious hoops, and it'll be much more difficult and take longer than it would with the proper development chain.
You can buy a second-hand Mac Mini for a couple of hundred bucks on eBay. If you're serious about doing iPhone development you'll make this back in saved time very quickly.
No one has brought up the hackintosh. If you have supported hardware it might be the best option.
There are two ways:
If you are patient (requires Ubuntu corral pc and Android SDK and some heavy terminal work to get it all set up). See Using the 3.0 SDK without paying for the priviledge.
If you are immoral (requires Mac OS X Leopard and virtualization, both only obtainable through great expense or pirating) - remove space from the following link.
htt p://iphonewo rld. codinghut.com /2009/07/using-the-3-0-sdk-without-paying-for-the-priviledge/
I use the Ubuntu method myself.
http://maniacdev.com/2010/01/iphone-development-windows-options-available/
check this website they have shown many solutions .
Phonegap
Titanium etc.