The Power of Live-Coding

native applications

for iOS, tvOS, macOS

Bounces enables interactive app development for iOS, tvOS and macOS,
and includes extensive support for dynamic storyboard updates.

Bounces was previously named Celedev CodeFlow.

Why Bounces?

Did you ever had the feeling that having to rebuild and rerun your app to test small changes in the app code, storyboard or assets was a true waste of time? We had. That's why we created Bounces.

Bounces is a macOS app that works in conjunction with Xcode to make edits to your app project directly bounce to all running instances of the app. Without restarting them. Without loosing your current test context.

For example

Represent yourself testing your app on an iPhone and an iPad. You add or edit a layout contraint in the app storyboard in Xcode and —bounce!— you see the effect of the edit right away on both test devices!

Or you fine-tune the code of a UIView animation and —bounce!— you experience the changes right away on the test device. Without having to restart the app and navigate again to the tested app screen.

This is how Bounces can make app development more productive, creative, and fun.

See it in action

This video shows the old CodeFlow app name, but is still a good illustration of storyboard and code bouncing!

Main features

Live Application Update

  • Target App is updated while running.
  • No app relaunch; the app's current state is preserved!
  • Live update everything: code, storyboards, image assets…
  • Wireless live app update on a device or in the simulator.

True Native Apps

  • Live code your app with the entire native OS SDK
  • iOS, tvOS and macOS SDKs supported.
  • Live update of native app resources: storyboards, SceneKit models…
  • No web view; no proprietary UI components.

Perfect Fit with Xcode

  • A Bounces project extends an Xcode project.
  • Both projects are automatically kept in sync.
  • Freely mix Swift / ObjC compiled code and Lua dynamic code in your app.
  • Use Xcode storyboards/assets… editors and experience live updates.

What can you do with Bounces?

Bounces is very flexible and you can use it in many different ways. Here are just a few examples.

Application Prototyping

  • Mockup entire applications or specific UX concepts.
  • Quickly iterate in code / storyboards / assets.
  • The prototype is a true functional native application.
  • Interactively improve the app prototype with the client or marketing team.
  • Use the prototype as the starting point for the real app.

Dynamic Storyboard Design & Debug

  • Easily add dynamic storyboard updates to existing apps.
  • Add, test and adjust layout constraints interactively.
  • Quickly fix layout issues in table views, stack views, collection views…
  • State is preserved: you stay in the current view controller when the storyboard is updated.

Multi-Screen Design

  • Make your app look good on all screen sizes
  • Live-update your app on multiple devices simultaneously and check how it looks on all screen sizes.
  • Become the master of size-classes.

Learn and Explore

  • Explore new APIs.
  • Try, fix, revert, improve at will.
  • Make self-training fun again.
  • Imagine, experiment, and unleash your creativity.
  • Enjoy the power of unlimited playgrounds.

Simple App Creation

  • Create entire apps in interactive mode,
  • or develop very specific parts of your app using live coding.
  • Ship the app with the dynamic code inside,
  • or remove the dynamic code before shipping, and push a traditional app to the store.

Bounces Quick Tour

Bounces is an Integrated Live Application Development Environment for iOS, tvOS and macOS.

A macOS App and a client framework

  • Bounces is a macOS application
  • A target app embeds the Bounces framework
  • Together they control the reload of code and assets into the target app
  • Target SDKs: iOS tvOS, macOS

A Dynamic IDE

  • Specially designed for live app creation
  • A Bounces project defines dynamic code and resources for the target app
  • It extends the target app's Xcode project
  • Syntax-aware Lua code editor
  • Assets viewer
  • Support for external asset editors
  • Advanced Lua debugger

You will love Lua

  • Lua language for dynamic code
  • Simple, flexible and powerful
  • Fast lightweight execution
  • Quick and easy to learn
  • Very nice to use
  • The perfect fit for five coding

Wireless development

  • Automatic target device detection and connection
  • Wireless update of code and assets in the target app
  • Support of USB-connected iOS devices

Seamless updates

  • Real-time update of the target app while it is running
  • Instant reloading of Lua modules in the project
  • Assets are updated in the target app when their source file changes
  • Dynamic Storyboard update
  • Dynamic SceneKit scene update

New Posts

Tech Document
Jun 18, 2020

Using Lua Contexts in Your App

This document covers the basics for integrating a Bounces Lua Execution Context in your app. You will learn how to create and terminate a Lua Context, how to run Lua code in a Lua Context and how simple it is to exchange data between you app native code and a Lua Context.

Jun 18, 2020
Tech Document
Jun 11, 2020

Asynchronous Lua Execution

Asynchronous code execution is a common need when developing an application, and Bounces provides a set of tools for writing asynchronous Lua code. In this document, you will learn how to run asynchronous Lua code blocks using doAsync , and how to use Lua messages and timers for synchronizing various parts of your app.

Jun 11, 2020
Tech Document
Jun 4, 2020

Lua Modules in Bounces

Lua modules are key components for Lua development in Bounces. In this document, you will learn how to use the require function to load Lua modules in a Bounces project, how require in Bounces differs from standard Lua, and how to make your Lua modules nicely play with dynamic code update.

Jun 4, 2020
Tech Document
Mar 10, 2020

Storyboard Updates In Depth Tutorial - Part 3

In this tutorial, you will learn how your existing application project can benefit from Bounces dynamic storyboard updates. Part 3 - Dealing with Complex View Controller State

Mar 10, 2020
Tech Document
Mar 4, 2020

Storyboard Updates In Depth Tutorial - Part 2

In this tutorial, you will learn how your existing application project can benefit from Bounces dynamic storyboard updates. Part 2 - Managing View Controller State

Mar 4, 2020
Tech Document
Feb 21, 2020

Storyboard Updates In Depth Tutorial - Part 1

In this tutorial, you will learn how your existing application project can benefit from Bounces dynamic storyboard updates. Part 1 - Configuration and First Dynamic Edits

Feb 21, 2020
Tech Document
Jan 21, 2020

Get Started with Storyboard Updates

In this tutorial, you will learn the basics about creating and dynamically updating a storyboard-based application with Bounces.

Jan 21, 2020
Tech Document
Dec 19, 2019

Project Creation and Configuration

This document presents the different ways to create a project and configure it in Bounces.

Dec 19, 2019