If you are considering developing cross-platform mobile apps, two of the platforms you may encounter are Xamarin and Delphi XE5.
I created the starter application for a Master Detail app for iPad using Xamarin and Delphi XE5. My findings are outlined below.
Xamarin:
I created the starter application for a Master Detail app for iPad using Xamarin and Delphi XE5. My findings are outlined below.
Xamarin:
- Generates what looks like exactly the same project as XCode.
- The app contains Add, Edit and Delete buttons that are hooked up and working. (Just like the Xcode project.)
- When you rotate the screen to portrait mode, the menu hides and can be shown again by tapping the menu button at the top left. (Just like the Xcode project.)
- After scrolling and stopping, I tap a menu item and it immediately opens that item on the right. (Just like the Xcode project.) This is the behavior I expected. This is how the email app that comes with iOS works.
- If I scroll and stop, then lift my finger, the scrollbar goes away almost immediately so I can tap another item. (Just like the Xcode project.) That is expected behavior.
- If the app is in landscape mode and I click the Home button and then return to the app again, it is is still in landscape mode. (Just like the Xcode project.) That is the behavior I expected.
Delphi XE5:
- Generates a project that looks somewhat similar to the XCode project but with pictures.
- Does not have Add, Edit or Delete functionality but it does have arrows for moving Next and Previous.
- When rotating to portrait mode the menu does not hide, rather the body on the right gets thinner.
- After scrolling and stopping, I tap a menu item but that just stops the scrolling. I have to tap again to open the item. That is annoying and is not the behavior I expected.
- If I scroll and stop, then lift my finger, the scrollbar goes away after a short delay so I have to either wait until it goes away before tapping another item, or tap the other item twice. (Sometimes the scrollbar doesn't go away until I tap again.) Both are not the behavior I expected. It is worth noting here that on an Android project during a previous experiment using Delphi, I ran into an issue where if you scroll an area that contains a button and then you tap the button, it sometimes requires you to tap it a second time before it will register the tap event.Delphi supposedly compiles down to be a native app, but it seems that it uses it's own custom scrollable area component that does not have the same behavior as the real one.
- If the app is in landscape mode and I click the Home button and then return to the app again, it is back in Portrait mode, but then it rotates back to landscape mode. I would have expected it to be landscape mode again when returning to it.
Is there a clear winner? I wouldn't say so. Xamarin will allow you to share some (not all) of your code across iOS, Android and Windows Phone projects. Delphi has some glitchy functionality with scrollable areas, but if I understand correctly it will allow you to share all of your code across iOS and Android projects (though not Windows Phone.)