This is an old revision of the document!

Serval Mesh app for iPhone

The Serval Project did not choose the Apple iPhone as the smart-phone platform for the original Serval Mesh (app for Android) because:

  • iOS had poor support for essential telephony functions (speaker, microphone, audio stream synchronisation)
  • sharing and distributing free iOS apps was and remains very limited:
    • it is impossible to “side load” apps onto iPhones – iOS apps can only be installed from the Apple App Store
    • Apple retain tight control over the content of their app store
    • Apple may not allow an app that upsets their business model or business partners
    • Apple Store licence terms are incompatible with the GNU public license
  • the Android app development environment was far more permissive and flexible, particularly with regards to:
    • programmatic Wi-Fi network control
    • rooting (jailbreaking) to allow installation of an alternative Wi-Fi device driver for Wi-Fi Ad Hoc mode
    • long running background processes and inter-process communication
    • support for native code compilation using GCC

The Mesh Extender device was conceived in 2013 as a way to provide Serval to non-Android devices using Bluetooth or Wi-Fi Direct. The idea was to develop an iOS app that delegated all Wi-Fi Ad Hoc or long-range communications, encryption, Rhizome storage, Mesh Datagram Protocol (MDP), and other core Serval services to the Mesh Extender, and simply acted as a rich front-end to these services. To date, such an app has not been developed.

Serval Chat (app for iOS) was conceived in 2014, not as a “port” of Serval Mesh (app for Android) to iOS, but as a completely new app focussed exclusively on secure, resilient text messaging – both one-to-one and in groups – with a far simpler and more polished user interface than Serval Mesh.