Using Lua for Responsive Programming of iOS apps par Jean-Luc Jumpertz
Résumé
Celedev has developed a live-coding-oriented development environment for iOS apps. This talk will be focused on the role of Lua as a key component of this system. It will present the reasons behind the choice of Lua and will discuss several technical aspects of the integration of Lua in a complex host operating system like iOS, including:
- Multi-threading aspects: We will see why multi-threaded Lua is a mandatory feature in our system and we will show how to use the lua_newthread() function to run code from multiple threads within a standard Lua VM. We'll also provide a few implementation tips & tricks to avoid common traps in Lua multi-threaded implementation.
- Object-Oriented framework: The need for integration of Lua code with the iOS Objective C runtime has led us to design an extensive Lua Objects Framework, fully compatible with the Objective C model, but with a very Lua-ish spirit; we will give a brief overview of this framework.
- Dynamic code update: we will discuss Celedev dynamic code update feature from the Lua implementation perspective and show how it is integrated with the Lua require() function.
- Lua Debugger: And, as a good debugger is key for serious software development, we will put the highlight on some original features of the Celedev debugger and show the debugger integration with other features of the system discussed previously.