Development: wxMobile Proposal

From WxWiki
Jump to navigation Jump to search

wxMobile is a proposed API, library and simulator by Julian Smart for developing mobile applications with wxWidgets. Feel free to update this page with comments and thoughts.

Please read this documentation for an overview and details of the API so far:

A snapshot of the library, including HTML documentation, is here:

A Windows binary of the demo and simulator is here:

Here are some screenshots of the demo:

Discussion points include:

  • Is the API (so far) reasonable? It largely follows the Touch Cocoa API, for reasons explained in the wxMobile introduction. I don't think we can achieve a highly generic API that will map onto different platforms with sufficient detail. However, we can (a) use a mixture of generic and native controls on non-iPhone platforms, and (b) provide optional API that is used according to platform (this must be done sparingly so as to not negate the benefits of wxMobile).
  • Should we provide coverage of all standard wxWidgets controls, such as wxComboBox, even if this means non-native implementations? Even the iPhone has to render standard controls within Safari, to display web forms correctly, by depicting the control and then opening a detailed editor. If we do this, then we obviously make it easier to convert existing applications. Our guidelines should discourage use of these in finished applications though, except when absolutely necessary.
  • Is the directory structure reasonable? (include/wx/mobile, src/mobile, src/mobile/generic, etc.)

Progress on compiling wxiPhone applications from the command line

With the combination of recent 2.9.1 configure changes and a suitable makefile, you can now compile simple wxiPhone applications for the simulator and device, without needing to use Xcode.

Please read the Makefile comments for usage, but typical usage is:

make CONFIG=simulator-debug wx ; build wxWidgets for the simulator

make CONFIG=simulator-debug app install ; build app for the simulator and install in the simulator