Monotouch.Dialog iOS 7 automatic look and feel upgrade? - xamarin.ios

I'm developing my first iOS app in Xamarin.iOS, using MonoTouch.Dialog to create the graphical user interface via code with only minor (color only) customizations.
My question is: Will the user interface upgrade to the new iOS 7 look & feel for users using that iOS version or it will always look the same regardless?
I don't have an Apple Developer Account yet so I'm not able to install iOS 7 to try it in my iOS device and haven't found documentation regarding this particular topic in MonoTouch.Dialog website.

Now, when Xamarin.iOS 7.0 is out, when you set target SDK to 7.0, everything looks iOS7 like.

iOS agnostic answer: MonoTouch.Dialog uses UITableView (and friends) and will behave like any other application, using UITableView, would using the same iOS version.
At this time information about iOS 7 is only available under NDA so you unlikely to get any public answers. Apple private forums, where you can ask iOS 7 specific questions, requires you to have a developer account (which ensure you're covered by the same NDA as everyone else).

Related

how to use onsen-ui 2.0 to use flat design on iOS and material on Android ?

Onsen-ui 2.0 provides material and flat components. If we want to follow vendor design guidelines we should use material for android and flat for ios. How should I do without using full switch android or ios on my templates ?
With Onsen 2.0, they are enabling this exact feature. Onsen 2.0 will automatically detect the platform and switch between iOS and Material for you. Check out this blog post from yesterday that explains it all in detail: https://onsen.io/blog/what-is-material-design/
This is the relevant quote though from that link:
We have also gone one step further by adding automatic styles. What
this means is that an Onsen UI app will use the Material Design
components when running on the Android platform while it automatically
switches to the flat design when running on iOS.
I will be waiting for Beta 7 , Have you decided the date of release. Switch based on platform is going to be a fantastic feature.

UIWebView is unavailable: not available on tvOS

Is there anyway to use a UIWebView with an application targeted for tvos?
This Apple Doc, UIWebView Class Reference, would suggest otherwise would it not? Or am I just interpreting this all wrong?
UIWebViewNavigationType (New in tvos 9.0)
UIWebView is not available for tvOS, as #JessBowers mentioned in the comments, and is documented here: UIKit Changes for Objective-C, UIKit Changes for Swift.
For a complete list of iOS API's that are available for tvOS refer to: iOS 9.0 to tvOS 9.0 API Differences
Although WebKit/UIWebView is not officially available in tvOS, some people have figured out that it is possible to use that functionality if you are willing to edit your system header files. No word on whether Apple would actually approve a tvOS app that is using such an undocumented API.
http://www.macrumors.com/2015/11/06/apple-tv-4-web-browser-tvos-hack/
https://github.com/steventroughtonsmith/tvOSBrowser

Where did lcdui go, in JME SDK 3.0+?

I want to write a tiny "hello world" J2ME MIDlet. In a sample like this one, classes in javax.microedition.lcdui.* are used for display output. When I try to compile it in Eclipse, I get the error,
The import javax.microedition.lcdui cannot be resolved
I've installed JME SDK 3.4, and I'm able to run MIDlets that don't import javax.microedition.lcdui.*. I read somewhere that lcdui can be obtained from the wireless toolkit; and Oracle says that the wireless toolkit has been integrated into JME SDK as of 3.0+.
So why can't Eclipse find it?
OK, I think I know the answer now.
I got back to the JME SDK 3.4 documentation page on Using Sample projects, and created and ran an instance of UIDemo. It uses lcdui classes, but it runs flawlessly - no errors about inability to resolve javax.microedition.lcdui.*.
The difference appears to be that the working sample uses different libraries than the one I tried at first. The first one uses org.elipse.mtj.JavaMEContainer/Oracle Java(TM) Platform Micro Edition SDK 3.4/IMPNGDevice1,
while the one that works uses org.elipse.mtj.JavaMEContainer/Oracle Java(TM) Platform Micro Edition SDK 3.4/JavaMEPhone1. They contain different sets of jars, e.g. the working one contains midp_2.1.jar, while the earlier one has impng_1.0.jar.
A follow-up question might be, why doesn't IMP-NG have lcdui in it? Well, those who pay attention to what they're doing will have read that
This JSR [for IMP-NG] will define a J2ME profile targeting embedded networked devices that wish to support a Java runtime environment similar to the Mobile Information Device Profile (MIDP) version 2.0, but that do not provide the graphical display capabilities required by MIDP 2.0.
The Information Module Profile - Next Generation (IMP-NG) will be a strict subset of MIDP 2.0, where at least the APIs relating to GUI functionality (the LCDUI) are removed. Functionality not already present in MIDP 2.0 is not anticipated or desired. "
The next question might be, why did I end up selecting IMP-NG when I was going through the tutorial... when I really do want a MIDlet that does something graphically? But I'm not sure I care, now that it's working.
The new me sdk 8.2, as I understood after browsing all class and in packages, does not provides any class to develop user interface. not like sdk 3.4, that have many graphical components.

Need help Android and iOS-App developed on Xamarin

Need some help on xamarin Platform. I understand it can be used to develop Android-base and iOS-base App on Xamarin. I have the following questions:
For Android and iOS-based app develop on Xamarin, can the app run on Android-tablet ad iOS-tablet respectively? what I need to do for both tablets respectively?
If there are new controls for android and iOS, how Xamarin will update this for development?
1) Yes they can run on Android Tablet and iPad. Your code logic would remain the same but you would need to provide for the UI since the resolutions are different.
For iOS, Xamarin makes it simple by providing for a Universal template which allows you to provide different layouts for iPhone & iPad.
For Android, there is no template as such but the process remains the same just as you would for phones with different resolutions.
2) Assuming you are talking about the default controls, they will made available in the Xamarin framework via their regular update channels. First they are in Alpha, then in Beta and once the bugs have been ironed out, they are made available to Stable channel which can then be used in the production apps safely.
I would recommend you go through their docs which are quite good and explains this whole thing in quite detail. Xamarin Docs

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.

Resources