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:

  • 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.)

Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development的更多相关文章

  1. Property Finder – a Cross-Platform Xamarin MonoTouch Mobile App

    Developers are now finding themselves having to author applications for a diverse range of mobile pl ...

  2. Xamarin vs React Native vs Ionic vs NativeScript: Cross-platform Mobile Frameworks Comparison

    CONTENTS Reading time: 14 minutes Cross-platform mobile development has long been a viable alternati ...

  3. Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...

  4. 垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想

    Delphi 是一个基本上被我遗忘的工具, 要不是在使用RapidSql , 我是收不到Embarcadero 公司发出的邀请来參加Delphi XE5的公布会的. 有人可能要问为什么是Embarca ...

  5. 垂死或涅槃重生 -- Delphi XE5 我们将宣布感情的回归

    Delphi 在很大程度上是一个被遗忘我的工具. 无论是在使用RapidSql , 我还没有收到Embarcadero 本公司发行参与邀请Delphi XE5该公告将. 可能有人会问,为什么Embar ...

  6. DELPHI XE5 UP2 运行IOS 遇到 Wrapper init failed: (null)问题的解决办法

    一.问题表现: 在MAC OSX(10.9.2)上安装了比较新的XCODE5.1 和COMMAND LINE TOOLS 在DELPHI XE5 UP2上放了一个按钮,输出到MAC OSX上,出现: ...

  7. Delphi XE5 支持的Android 版本

    Delphi XE5 已经支持Android应用开发.  那XE5支持Android的哪些版本呢?Delphi编译的APP能部署到Gingerbread (2.3.3-2.3.7), Ice Crea ...

  8. DELPHI XE5 与SQLITE

    最近一次使用DELPHI做项目是使用DELPHI2009,为了访问本地数据库方便,使用ACCESS数据库,不需要安装驱动,(WINDOWS自带),但是ACCESS数据库的性能确实很糟糕,通过ADO连接 ...

  9. Delphi xe5 手机开发经验(新手级别)

    Delphi xe5 手机开发经验(新手级别) http://diybbs.zol.com.cn/1/34037_699.html http://www.delphitop.com/html/jiqi ...

随机推荐

  1. Bootstrap 简介二

    什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstra ...

  2. python之路 面向对象基础 XML

    一.面向对象基础 1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义 ...

  3. Kattis - wheretolive 【数学--求质心】

    Kattis - wheretolive [数学] Description Moving to a new town can be difficult. Finding a good place to ...

  4. Codeforces Round #396 (Div. 2) C. Mahmoud and a Message

    地址:http://codeforces.com/contest/766/problem/C 题目: C. Mahmoud and a Message time limit per test 2 se ...

  5. 针对Oracle表 列字段的增加、删除、修改以及重命名操作sql

    增加字段语法:alter table tablename add (column datatype [default value][null/not null],….); 说明:alter table ...

  6. Docker 使用指南 —— 基本操作

    Docker 是一个能够把开发应用程序自动部署到容器的开源引擎.它由Docker公司的团队编写,基于Apache 2.0开源协议授权.它提供了一个简单.轻量的建模方式,使开发生命周期更高效快速,鼓励了 ...

  7. elasticsearch报错[WARN ][bootstrap ] Unable to lock JVM Memory: error=12,reason=Cannot allocate memory,解决

    早上在服务器上安装elasticsearch集群,在其中的一台上面安装好elasticsearch之后安装了一些插件,其中一个插件是marvel,结果可能是新版本不支持这个插件,就没有安装成功,也就索 ...

  8. discuz对PHP7不支持mysql的兼容性处理

    PHP7 废除了 ”mysql.dll” ,推荐使用 mysqli 或者 pdo_mysql,discuz对原生mysql函数做了如下处理,通过mysqli代替原mysql函数 http://blog ...

  9. OCR训练数据生成方法

    有的时候我们训练网络的时候,数据集在收集的过程中由于种种原因导致图像收集的不完整,比如某些种类很少,或者没有,这个时候我们就可以考虑自己生成数据集. 这个和data augmentation还不太一样 ...

  10. 关于C/C++中main函数参数的学习

    因为面对对象作业(2018.5.21)的要求,去学习了C/C++中main函数参数的意义,以及一些简单的使用(从命令行指令的接受),不给予赘述.(仅为个人拙见,还望看官指正) 首先,带有参数的main ...