Flash Programming(Adobe Air) Vs Objective C? - iphone

This isnt a Programming quest but i couldn't think of a better place to ask this question..
I recently started Developing Apps for iPhone using Objective C and Apple xcode environment.now i am quite comfortable with Objective c and iPhone SDK. But now my Company has decided to stop using XCode Environment to build apps but use Adobe Air(Flash Programming) to build apps instead and i have been asked to start Studying Flash Programming and using Adobe Air.. since i couldn't find much information regarding developers or apps build with Adobe Air anywhere i had few questions in mind which i thought someone might be able to answer here
Yes Flash will have the best animations i guess but isnt iPhone's Core Animation Framework ,use of Open GL or use of Game Engine's like Cocos2d available for iPhone good enouf if compared with Adobe Flash??
The Utility Apps can be better build with Apple's own Development Environment even if entertainment apps that dont require much development task might be a bit easy with Flash
Apple Development Environment Xcode and iPhone Sdk must have tons of better api's and features then adobe air could offer??
I have no idea how actually Flash Programming is done.. so after getting comfortable with Objective C is it really worthwhile to just let it go and start studying Flash??
IT would be really great if someone can help me with which will be the right process to develop apps for iPhone Objective C or Adobe Flash ??

The advantage of flash, as sosborn said, is that you will be able to easily port the project to Android, iPhone, and other platforms. You guessed correctly when you said that apple's environment will be able to function with less issues. By going from flash to iphone, you may have some conversion issues to fix.
If the company wants to develop for multiple platforms, then that change is totally valid and smart. If the only reason is ease of development from a graphics standpoint, ask them to look into cocos2d. If they really must use flash graphics, they can be pretty easily set up for use with coco.

Related

Where can I find a tutorial for building a simple OpenGL app for an iPhone newbie?

I'd like to get into iPhone development (mainly OpenGL & games stuff, no GUI apps). Got 10+ years experience of thorough Windows development, mostly C++ / win32 api, some OpenGL. However I have absolutely NO experience with Mac or Apple whatsoever.
I'm confident I'll pick up the concepts without any trouble, but I got no clue where to begin, or even how to setup an iPhone development environment. Should I use GCC? or Xcode (is that an IDE and/or compiler?) and is there a step-by-step introduction somewhere to create an initial project?
There's an overkill of info and tutorials out there, but they all seem to assume some initial Mac development knowledge which I don't have. An absolute newbie tutorial on creating an OpenGL "hello world" for iPhone step by step from scratch would be awesome.
Does anyone what would be a good place to start for me?
1 -- The example projects in XCode on the Mac make excellent starting points. XCode is an IDE... and if you set the target to "simulator" it just pops up the iPhone simulator. Fire it up, you can't miss it. Download from developer.apple.com.
2 -- I really liked the book "The iPhone Developer's Cookbook: Building Applications with the iPhone SDK"
3 -- Objective C is kinda quirky but you get used to it quickly enough, plenty of web resources and books are easy to find.
I would also take a look at Stanford University's free iTunes U course in iPhone development. It's a great, thorough explanation of the iPhone platform and Objective-C. There's a "Hello World" tutorial in there, but the videos go much farther and will give you a good deep dive into the ecosystem. There is an OpenGL ES section as well.
If you haven't done so yet, you will need to either buy a Mac or build a Hackintosh, since you have to have OSX for development.
I did a test OpenGL app last fall, and found the best book for 3D on the iPhone was:
iPhone 3D Programming
By: Philip Rideout
It covers both versions of OpenGL ES that you need to be aware of if you want your apps to run on older iphone hardware, although if you only want to target the 3GS and up (and 3gen ipod touch, and ipads) then you can skip to OpenGL ES 2.
It has complete examples, a good explanation, and best of all it recognizes that a lot of people coming to the iPhone for games development already know C++, and it focuses on getting you right into the C++ OpenGL rendering loop. You have to deal with very little objective C, and most of that is well explained with examples that are easy to use.
It doesn't cover game design - it's just to get you going in 3D on iOS, so if you aren't familiar with OpenGL and game design fundamentals you should also invest in one of the many game design and opengl bibles that are available.
As far as programming the iPhone on windows, it's possible, and I have a friend doing it using a hackintosh VM. I decided to just get a cheap mac mini I found on sale when the new ones came out a few years ago. My friend found that his setup worked well enough to get to the stage where he was willing to commit to his app, then he invested money and bought a mac mini. He indicated that development just flies now, compared to his VM, and he wishes he switched sooner.
Whether you have the $500+ to invest in it is up to you, but be aware that there really aren't any other good options for iOS development yet, and you cannot easily submit apps to the apple store without a mac and xcode, so if you plan on going that route, you need to budget for a mac.
For the simplest development environment for someone starting out with iPhone development, you'll want to go with a Mac running Snow Leopard and use Xcode with the iPhone SDK. Xcode is an IDE that contains within it a modified version of the GCC (or LLVM) compiler targeted at producing Mac or iOS binaries. It also includes a full iOS simulator for quickly testing out your applications.
There are ways of doing iPhone development on Windows, but they are extremely difficult to get set up and ultimately more of a curiosity than a practical means of development
There are a good number of getting started resources listed in this question. I recommend the Stanford videos, as well as Apple's getting started videos that you can access through the iOS Dev Center. Apple also has an iOS Getting Started document that acts as a jumping-off point for their other introductory documentation.
Be aware that OpenGL ES is not a simple subject to just jump into. You can easily create an OpenGL ES "Hello World" application by opening Xcode and creating a new project from the OpenGL ES Application template, but you'll have a hard time figuring out what to do after that. However, OpenGL ES is something you can learn independently of Cocoa and Objective-C, so if you want to jump into that topic, I taught a class on the subject which can be found on iTunes U as part of my advanced iOS development course. I walk through the fundamentals of OpenGL ES 1.1 there (2.0 can be found in the fall semester of the course). I also highly recommend Philip Rideout's iPhone 3D Programming book and Jeff LaMarche's series on the topic.
Don't let the initial complexity of OpenGL ES scare you away. You should be able to pick up the basics reasonably quickly if you apply yourself.

How do I start developing applications for iPhone

Hi
I would like to learn and develop applications for iPhone. Can some one guide me on where to start? I'm new to mobile application development. I have good exp in developing web applications and desktop client applications.
Do you have any experience with C? If not, you should probably start there, then work into learning objective-C, and finally dive into the Apple frameworks (i.e. Cocoa touch).
apple has good documentation at http://developer.apple.com
If you prefer books, I would highly recommend iPhone Programming by Aaron Hilligrass:
Also note that you are free to write iPhone apps and test them on a simulator, but to actually push code to a real device you need to purchase a developer profile for $99
Get a mac. An intel based mac is
required. Basically you need Mac OS
X.
Learn C, Objective-C.
Get the iPhone SDK.
Get a good book on it. Do the examples.
Check out the Stanford Learning Series on iTunes, where you can virtually take the course at Stanford. Do the homework assignments, etc...
As darren has said you'll want a good knowledge of C. You can go along the C#/ objective C route but theres also the Airplay SDK. If you have a good knowledge of C apprently you can make games for iPhone quite easily, not had the chance to try it out yet but looks promising. According to the site COD: Nazi Zombies was made using it, might be worth a look.
http://www.airplaysdk.com/

What is Adobe Air Packager for iphone

I just read this annoucement about Apple lifting restrictions on its third-party developer guidelines with direct implications for Adobe’s Packager for iPhone.
http://blogs.adobe.com/conversations/2010/09/great-news-for-developers.html
I just want to know what kind of applications can be built using this packager?
Can I build applications using Flex/Actionscript and convert to iphone apps using this packager?
What effect do you think it might have on programming apps using Objective-C?
Some of your points seem to ask for opinions but most of your questions would best be served with their FAQ. http://labs.adobe.com/wiki/index.php/Packager_for_iPhone:Developer_FAQ
IMHO for this one
What effect do you think it might have on programming apps using Objective-C?
Fewer people will attempt to learn Objective-C and may also not start using Xcode.
Update 10/24/2011
It would seem that adobe moved the link, so here are some others to get you going:
http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html
Developing for ipad
http://blogs.adobe.com/flashplatform/2010/01/building_ipad_apps.html
Developing for iOS using Flash Professional
http://www.adobe.com/devnet/logged_in/abansod_iphone.html
How to use Adobe's iPhone Packager without an Apple Developer Subscription
http://www.instructables.com/id/How-to-use-Adobes-iPhone-Packager-without-an-Appl/

Is developing iPhone apps in any language other than Objective-C ever a truly viable solution?

I hear all this stuff about crazy ways to build iPhone apps using Ruby or C# under .NET or the like. Even stuff about developing apps on Windows using Java, or auto-generated apps using Flash CS5 or something.
Now, I've never really spent any time at all investigating these claims—I just brushed them off as clumsy or cumbersome or downright claptrap—but I'm a proud Objective-C programmer who's perhaps a little worried as to whether there's any truth in all of this?
As of the newest iPhone OS license agreement by Apple, all apps for the iPad, iPhone, iPod must be either built with XCode/ObjectiveC directly, or be built using HTML/CS/JS (With libraries like PhoneGap if desired). The Flash CS5 to iPhone cross compiler has been pretty much expressly forbidden. You can read about it from Steve Jobs.
I guess the only time those tools would be viable is in a corporate environment, where you were installing the apps directly on the phones.
I imagine that if this is possible it will soon be stamped out by Apple. They are very aggressive with their licensing terms.
As far as I'm aware, Apple is actively blocking apps developed with tools like you mention from appearing in the App store. That makes whether it is possible pretty much irrelevant.

Sharing Code between Flash Apps and iPhone Apps

I am interested in writing games for the iPhone and the Web. Ideally, there would be one language that I could write my games in and it would work on both platforms. I know this is not the case, so what is the best way to leverage code between iPhone apps (Objective-C/C++) and Flash SWFs (ActionScript)?
This maybe of some help
It uses the NME library which will allows code to mostly be written to the Flash 9 API and create the C++ for XCode to compile and run on the iPhone and Touch. This creates a path to port Flash games to iPhone/Touch.
Unfortunately, Flash and Objective-C are very, very different - and it's unlikely that a Flash player will be available for the iPhone in the near future. The native input methods used in Flash games - the keyboard and mouse - don't lend themselves well to the iPhone. While Apple could make Flash run on the iPhone, most Flash games would be totally unplayable (or feel very unnatural. They'd have to overlay a keyboard probably?). With the success of the App Store and native iPhone games, I think it's very unlikely you'll see Flash support anytime soon.
You might want to consider using a game development tool like Unity instead of Flash in the future. Unity allows you to create both 2D and 3D games, and you can program them in various .NET scripting languages. Once you've created the game, you can cross-compile it for web (their own plugin, not Flash), iPhone, or the desktop.
I know that doesn't help much since you have an existing codebase, but it might be something to consider for the future!
My company is developing a toolchain that allows compiling ActionScript3 to native code for mobile devices.
It now supports Windows Mobile and Symbian, and iPhone supported will be released in a couple of weeks.
Check it out at: http://developer.openplug.com/
BR
Guilhem
Adobe Alchemy looks promising. It is not released yet, but from their website:
Alchemy is a research project that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2).
This would allow iPhone apps and Web apps to share non OS-dependent C/C++ code, which is a very exciting prospect.
One option would be building everything in unity. The engine facilitates building the same game project to any of the following platforms:
Webplayer
OS X
Windows
iPhone
Wii
Actually, the iPhone supports Flash technically (see Developer creates Flash for iPhone and Flash Installer Update #2). It is just Apple's crippleware restrictions that prevent installation.
Other than that, there's really not much you can do. Flash/ActionScript and Objective-C are radically different. You can have a central server store data, but that doesn't solve the duplicated logic.
If you're already willing to use ActionScript you could go all the way over to the dark side and switch to Javascript. That's the only common language supported by your clients (web and iPhone).
How comfortable you are with either development environment certainly plays a role here. If you are a die-hard Objective C and a super star Actionscript programmer then doing both shouldn't be much of a problem. It will be lots of work of course, but not a problem.
However, if you are neither or only skilled at Actionscript then I suggest you focus on Flash/Actionscript for the time being. Eventually Flash will be available on the iPhone anyway. When that happens you can already have a number of apps ready to be quickly ported to iPhone. Also keep in mind. There are more portable devices out there than just iPhone. Getting your apps running on other devices might be worth it in the mean time.
Just keep in mind when you're developing your apps now that at one point you also want to run these apps on the iPhone. So make 'm in such a way that they can be controlled with an iPhone as well.
Updating this old QA with new information. The recently released monkey development framework deploys to both iOS and Flash: http://www.monkeycoder.co.nz/
It's so new that I wouldn't necessarily recommend it, but it has a great pedigree: the creator made Blitz3D and BlitzMax before, and those were great game development tools.
That said, I would strongly recommend a combo like Corona for iOS and Flash for web, so that you're using optimal tools for each platform.