is iPhone 3.0 SDK significantly different that I cannot use any books that were meant for iPhone 2.0 SDK?
Programming is pretty much the same?
Generally as everyone said above, changes to UITableView and few other items. 2.0 books still will be a great way to start.
Generally skip over any chapters with sound there is a new framework called AVAudioPlayer which makes playing sound sooooo much easier.
3.0 added a lot of extra frameworks which are real cool.
CoreData which is quite complex but
can be used for storing complex data.
MapKit has been added which allows
you to add google maps into you
application. It also features reverse
GeoCoding which means you can give
the map your lat,long and it will
give you an address which is way
cool.
Now you can interact with the user
iPhone Music Library and play
their music in your app.
You can also access the proximity sensor
cut/copy/paste,
video
shake gesture
push notification
in-app purchasing
.
The iPhone 2.0 books should give you the basic idea of how to structure your code, however you will miss out on some of the nice new things such as the availability of CoreData. A few things have changed with some of the controls such as UITableView, however you will get deprecation warnings from the compiler if you try to do things the old way.
The language is the same, with the addition of some new classes and a few changes to old ones. Your 2.0 books will be fine. If you're not using new features that were added in 3.0, there's almost no difference.
So far the biggest difference I found in terms of features that were available at 2.0 is changes made to Table views, specifically to table view cells. Apple added a lot of nice features that are commonly used every where that you had to write yourself. In 3.0 some of those are given to you.
So my advice is don't worry about using 2.0 books but when you start working on something also consult the SDK's documentation to see if there are any interesting things not mentioned in the book (I guess that would be a good advice even if the SDK didn't change).
Related
I'm looking for an Objective-C library / or just help in building a vision-based augmented reality application that does not rely on visual markers.
Qualcomm's is perfect, but only on Android (iOS is coming, but not soon enough). Any body know any other similar libraries?
QCAR for iOS has recently been released into public beta.
The only one I'm aware of is String, and I've become aware of that only via this iPhone + Kinect AR video (YouTube link) that recently did the rounds. So I've no direct experience of using it and no opinion on it, but I nevertheless think it qualifies as an answer to your question. It's commercial, but I think Qualcomm's is too.
Benjamin Loulier created a VRToolKit sample application for the iPhone that is based on the ARToolKitPlus framework. This sample uses the framework to track specific markers within the environment and allows you to overlay objects on them. I've seen some even more impressive demonstrations of this framework for using the camera to augment reality.
However, the ARToolKit framework (the parent of ARToolKitPlus) is by default available under the GPL license, which generally makes it incompatible with the App Store (and with commercial applications in general). You can purchase a commercial-use license for this framework from ARToolworks, if you need to use this within a non-GPL application.
Additionally, you might look into OpenCV for recognizing and tracking features in the environment. I've heard reports of people getting fairly decent performance out of it on iOS devices, even for more complex operations.
I've done some limited work myself in processing the video from the iPhone camera using the GPU, but nothing like what ARToolKit or OpenCV provides.
Have you looked at Aurasma http://www.aurasma.com/? They let you build custom apps with their system, which might suit your needs.
if mono touch is available than why we should use mac environment(sdk,xcode+Interface Builder)?
what are the disadvantage of monotouch compare to xcode?
I always prefer working in the language that is most philosophically aligned with the platform I am developing for.
That is to say, the frameworks the whole platform is built around were written for and in Objective-C. As such, if you are working in Objective-C yourself for a while you understand why things are built the way they are, and can also anticipate calls that might exist or behaviors.
Just as I would not develop for Windows Phone 7 in anything but Silverlight, I would not program the iPhone in anything but Objective-C in order to get the most out of the platform. New language? That's a benefit as people should learn new languages now and then anyway. And it's not like it saves you that much time to use a language you already know since a large majority of your time will be spent learning the frameworks (which MonoTouch lets you call into).
I feel like this needs an answer from the MT camp, too.
Why eat fish, if you can have meat? Why speak German, if English is understood? Why watch CNN if there is FOX? Why vote vote for the Republicans if there are the Democrats? Why...? And so on.
It is your choice! If you have worked with C# for a long time and want to have quick results on iOS, go MonoTouch. Especially if you have a collection of APIs or methods you can reuse, MT is the way to go. If you want to learn a new language (ObjC), go for it. Even if you use MT in the end, knowing ObjC is somehow crucial because it helps you understand why things work as they do.
Hello here is my personal opinion,
I've also been on .Net world for a while, when iPhone launched the ability to create native apps, it called my whole attention and i really tried to learn objc, i took 2 books and started trying and trying and trying like for a month and then I left iPHone programming due to you had to make tons of things than on .NET was a line away for example the GC.
When Miguel de Icaza launched MonoTouch i gave it a try and i realized that most of my previously done code was fully funcional (i've always tried to separate ui code from business code) and this is really the point of .NET on the iPhone, to bring most of your already done business logic to the device.
Also on objc you wont find anything like LINQ or var keyword, consuming web services on MonoTouch its just a few clicks away etc.
If you want to target the Android platform there is also MonoDroid (monodroid.net) wich its coming out later this year the stable release, you can give it a try right now on the beta state. Also if you want to target Mac OSX there is MonoMac. So you can share class libs between all this 3 platforms (also al mono/.net supported ones) without hassle not to mention it will work on windows too and viceversa (when possible) (Also dont forget about WP7).
The only thing you will need to worry about its the UI but most of your business logic should work. here is a complete list of .NET Assemblies supported in MonoTouch http://monotouch.net/Documentation/Assemblies and also MonoTouch exposes a C#/CIL binding to all the CocoaTouch APIs.
Also the support of the MonoTouch team is awesome you can just get on IRC ans ask a question and it will be answered right away, mailing list too :)
I really enjoy MonoTouch, i know that no language is perfect for all tasks, and Objective-C is no exception.
Every example, tutorial, and piece of documentation will be written in Objective-C, and mono will just be calling into Objective-C code under the hood. If you really feel like C# is worth mentally translating everything, and adding an extra layer in your code, go for it I guess.
As a C# developer, I've found Objective-C to be horribly painful to become confident with. It's taken about two months, and two excellent resources to get to this stage.
Get your Visa card out, you'll need to spend a total of $54.
1. The free Stanford "Developing apps for iOS" lectures.
Pure brilliance, and it makes learning Objective-C very clear.
http://itunes.apple.com/us/itunes-u/developing-apps-for-ios-sd/id395631522
2. The iOS Apprentice series.
This is where you'll need to cough up the $54. It teaches you, step by step, how to program in Objective-C, and the apps you build are actually pretty impressive. Part 1 (of the 4 parts) is completely free, so you can give it a go before parting with any cash.
http://www.raywenderlich.com/store/ios-apprentice
I've yet to find any iOS books which match the clarity and friendliness of these two resources.
Finally, don't buy any books unless they specifically say that they're for iOS5 and XCode 4. This latest version of XCode is simply too different to make them useful.
Disclaimer: I don't work for any of the resources mentioned in this thread !
A client do not want to consider MonoTouch for a new project.
MonoTouch.info has a long list of apps, but I have not found any on the caliber that can convince a client too choose a technology. The client has seen the list, and actually use the bland screenshots as an argument against MonoTouch.
Where can I find examples of applications useful as motivation. High profile apps created using MonoTouch, the apps you call home about. The apps that made it to the top 25 lists in their category.?
I responded on Twitter but thought I'd reply properly here;
The first app I will mention is iCircuit - http://icircuitapp.com/ - this application is featured on the Apple website here - http://www.apple.com/ipad/business/apps/index.html#workflow-icircuit - and is a pretty good seller.
Diggify is a Digg application which hit the top #8 sold application in Canada apparently - http://www.intomobile.com/apps/diggify/359756952/
An application that I built myself (it's a little old now admittedly) but I do think that it looks rather nice - http://bit.ly/gfxmasappstore :)
London Bike App is another nice looking application - http://www.londonbikeapp.com/
Update: Wow, this is an old question, there's a whole bunch of great apps using MonoTouch at http://xamarin.com/apps
Hope this helps,
ChrisNTR
I know of a couple apps that were built using Monotouch and sold very well but due to the uncertainly surrounding the terms when MT first came out and later the 3.3.1 mess the devs didn't make a big fuss out of it. I suspect they aren't the only ones not publicizing what technology they used to make their app.
If your client is using a handful of screenshots on a website as the reason to rule out using Monotouch then you might want to rethink your pitch. Whether or not an app has been developed in native Objective-C or C# via Monotouch makes no difference on the overall design or appearance because both rely on the CocoaTouch framework for UI. Being able to deliver an app that meets your client's idea of what makes a great app has nothing to do with the language you use and has everything to do with your ability to translate the essence of their ideas into a solid design and UX. Sell that, not the framework.
I found this article to be helpful when I'm trying to explain to others why I use Monotouch over native objective-c.
"Why we chose MonoTouch to write the Diggify iPhone app"
Is the graphing portion of Apple's "Stocks" iPhone application available to developers?
My guess would be that it is not. If I am right, on a rough scale on 0-100, how difficult would it be to reproduce? (I know this is a silly question, but anyway. Just want some idea.) Also, what framework do you think would be the most suitable for the reproduction? Core Animation? Notice especially how you can drag your finger across the charts when in landscape mode to see the prices on each data point. It's just way too cool.
http://code.google.com/p/core-plot/ is probably what you're looking for.
There are several commercial tools for iOS charting, which can probably reproduce the chart you are looking for.
ShinobiControls - which has many interactive features, as seen in this video.
www.threedgraphics.com
iPhone Charting Library for iPhone Objective-C
Full Disclosure - I work for Scott Logic, which is the parent company of ShinobiControls
It's also worth checking out SciChart, which has an ios financial chart control.
It is a paid control, but in performance tests really outstrips competitors including paid and open source. Some by a mile.
It supports Objective-C, Swift2.2, Swift3 as well as Xamarin in the upcoming v2.x release.
You can now clone the iOS Chart examples on Github and have a play around with the controls and see how we created the above example app!
Full disclosure - I work for SciChart and am the tech lead on the project
We've been programming an iPhone application under iPhone OS 3.1, but the client has now decided he wants us to redo the existing codebase to run under 2.2. One of the nice pieces of built-in functionality we used under 3.1 was the UISearchDisplayController functionality for searching UITableViews, but that functionality was not available previously and I'm not sure how to create the equivalent code under 2.2 from scratch.
Long story short, does anyone know where I can obtain earlier sample code? The TableSearch example apparently existed under 2.2 and would likely be very useful to me, but I don't know how to obtain it. When I go to look online at the available Apple sample code, I'm redirected to the latest 3.1 versions, which don't do me any good.
Howard
I didn't have any luck tracking down that sample code either. You could try the wayback machine though.
Btw, just to give you some stats to take to your client. Currently > 75% of iPhone OS users are on 3.0 or better according to 3rd party sources. Writing code for <25% (and decreasing) of a market is generally not a good idea. It sticks you with code that is harder to maintain and test, etc., etc. I'm sure you know all this. Anyway, you should really see if you can convince them to drop 2.2.1 support.