XCode 4 - Base SDK == Latest iOS (iOS 4.3) - ios4

To continue in my post-XCode 4 upgrade confusion, i came across this....
My Build Settings has Base SDK as iOS 4.3.
Now back in XCode 3.x days I remember 2 things:
The Base SDK was always set to iOS 4.0.
The target device was set to iphone 3.0 (to ensure greatest iphone audience).
What consequence is there for this Base SDK?
I mean, if SDK 4.0 provides support for features that only iOS4/iPhone4) provides, then why are these two separate build settings?

You can choose iOS 4.0 as your base SDK, but as long as you do not use APi's that are 4.0 and up your code should run on 3.x unless you used apis that were only in 3.2 and so on =)
Always a good thing to check the availability of methods when you look in the class reference.
I recommend using 4.x stuff.. because the people that use 3.0 are not worth supporting ( Only the really old devices are still running that, iPhone 1 -- most users have upgraded by now to an iPhone 3Gs or 4 ), the features you get in 4.x, including GCD are awesome.

Related

Javame sdk 8.3 doesn't work on Netbeans

I've faced a problem with configuring Netbeans 8.1 to develop javame application with Javame SDK 8.3. When a javame project is created, Platform property remains grayed, compilation produced the message:
Platform home (platform.home property) is not set. Platform home (platform.home property) is not set. Value of this property should be <space> emulator home directory location.
When I try to fix project property on the platform tab, I see that:
No CLDC platform available
An old Javame SDK 3.4 works.
Any ideas could be helpful.
The confusion comes from the fact that JavaME is so much more than just MIDP/CLDC. It is used for so many other things, like e.g. Blu-ray players and other embedded devices.
MIDP and CLDC are merely JSR API's - which for some reason has been excluded from the SDK 8.x versions. This is why it can't find a CLDC platform, unless you install SDK 3.4
No other way around it than to use SDK 3.4
MIDP2.0 = JSR118
CLDC1.1 = JSR139
No where to be found in the list of SDK 8.x supported APIs: http://docs.oracle.com/javame/8.3/javame-apis.htm

Best build target for ActionBarSherlock library?

The docs on the ABS website seem slightly inconsistent.
On http://actionbarsherlock.com/usage.html it says
"Due to its use of the native action bar and its related classes on Ice Cream Sandwich, the library requires that both it and your project are compiled with Android 4.0 or newer."
This implies to me that it is okay to build both project and library with API 16.
However, on http://actionbarsherlock.com/faq.html it says "The library itself must be built against Android 4.0 (API level 14). Your project should be built using the latest version of the SDK as possible as long as it is 4.0 or newer."
This implies to me that API 16 is okay for the project, but the library should be built with API 14.
So, then, my question is, 16 or 14 for the library?
Thanks in advance, and thanks to Jake for writing and supporting ABS.
George
ActionBarSherlock is designed to make a decision on launch time:
Use the system's built-in ActionBar, etc. widgets and classes
Use ABS's compatibility ActionBar, etc. widgets and classes
It uses your build target to make that decision. If you target 4.0, then devices with 4.0 will use their built-in widgets and classes in your app. Devices with 4.1 and higher will do the same. Devices with any version below 4.0 (so, 3.2 and below) will use the compatibility ABS stuff.
Changing the target to 4.1 will make 4.0 use the compatibility ABS stuff, which is kind of unnecessary but not really harmful. But it's almost always better to just use what's on the device. So I'd recommend keeping it at 4.0.
Side note: 3.0 - 3.2 also have an ActionBar class, but it's missing a lot of features added in 4.0, so it's best to use ABS for those versions.

Monotouch 5.0 and iOS 4.3 compatibility

I have got an application developed with Monotouch 4.0.7. This app is running on iPads with iOS 4.3.
Now, I want to migrate to the latest Monotouch version is 5.0. Will I be able to deploy my app on iPads with iOS 4.3? Or Monotouch 5.0 only for iOS 5.0?
Yes, it is possible to develop for iOS 4.3 (or even earlier iOS versions) with MonoTouch 5.0.
To set the minimum iOS version your app needs, go to the project's options, and in the iPhone Application page set Deployment Target to the minimum version.
Have in mind that MonoTouch will not tell you if you use iOS 5.0 API in your app. You can add iOS 5.0 features to your app, but you must not try to use those features on a lower version (here you can see how to accomplish this).
You can upgrade to Monotouch 5.x without any problems. In Monodevelop, change your SDK to 5.x
Just make sure your deployment target remains 4.3, if you still want to target that platform.
You will have to pay attention to not calling any methods that don't exist in 4.3.
If you want to have different/extended behavior on iOS 5 devices, you can check the OS version and use a different code branch.
Another small thing to be prepared for: iOS5 behaves differently in some situations. For instance if you are having hierarchical UIViewControllers, iOS5 will automatically call all UI events like ViewWillAppear(), even if you don't use the new UIViewControllery hierachy API.
What I want to say: test your app thoroughly on both iOS versions.

Can I test my apps on a first generation iPod Touch using Xcode 4?

Hi I have an app that supports iOS 3 however I've only ever tested it on an iPhone 4 (very bad practice I know). Lately in my updates people have been emailing me that my app is crashing on their older device, still running iOS 3. I am clearly including features only available in iOS 4 SDK but I can't find where they are in my code.
So to fix this I bought a first generation iPod touch from ebay (which I haven't received yet). Will I be able to build and run my app on this iPod touch or do I need to locate an older version of Xcode and the iPhone sdk (i.e Xcode 3.2.2) and build it using that?
If you haven't used any iOS 4+ specific APIs, you can test your apps on the iPod touch using Xcode 4.

MonoTouch - .NET 4.0 on an iPhone

We've upgraded to MonoTouch 4.0 and the new MonoDevelop.
In order to get .NET 4.0 , do we need to enable a setting, or does MonoTouch automatically compile against the newest Mono ?
Everything has been working perfectly, iTunes has accepted all our apps, all without issue. We've released now nearly 70 apps made with MonoTouch and have thousands of users.
MonoTouch 4 requires that you have previously installed Mono shared runtime 2.10.1 in order to install it.
Once you have installed Mono runtime, MonoDevelop and of course ios 4.3 sdk now you can install monotouch 4, once installed you are now able to get Net 4 love by creating a new iphone solution :) (yes you dont have to modify any settings)
Hope this helps
Alex
As far as I can tell from MonoTouch's website ( http://monotouch.net/Releases/MonoTouch_4/MonoTouch_4.0.0 ), it says "Core Mono Runtime upgraded to Mono 2.10" so it looks like dmcs ( http://www.mono-project.com/Release_Notes_Mono_2.10 ) is included. I don't have MonoDevelop installed, but I might be able to help you out with my suggestion:
Look in Project -> Options -> Build -> General -> Runtime Version (I couldn't post more than 2 links since I'm a new user.)
I hope this answers your question.

Resources