
iOS App
As the first technical hire for this app development start up I did it all. This inculded designing the system architecture from the ground
up, programming and laying out all the support systems required to get the company on a sound technical
footing.
App Link
Three Products in One
The challenge designing architecture for this project is that it touches three different
product areas: Chat, Social Networking, and Gaming. Each of these features lends itself to
different data and web service architectures. Chat implies a store and forward process, Social
networking implies offline data, and Gaming requires single repository transactions. The
challenge was to build a design allowing the user to continue to use the app, even when
offline, while still maintaining transactional data integrity for gaming.
Chats
Social Networking
Game
Data Handling and Threading
Data was stored locally and on a server with the
server maintaining the master copy. To keep the app responsive all server
communications take place in a background thread with handlers robust enough to
respond to all types of data failures.
Data Handling Between Server and Device
Communications and Speed
To greatly augment the speed of the app, a technique of 'display local then update'
was employed. When a scene needs data, it first displays local data while starting a background thread to get
updated data from the server. When the server data returns it goes back and updates the
display. This way the user has a much more responsive, better feeling app.
Versions, More Versions, and Tons of Changes
As the project evolved, the app design was continually refined causing the functionality to
change on a daily basis. This created fun programming and
maintenance challenges. The code had to be written with enough structure and modularity that
changes would have minimal impact on development time. In addition to numerious small changes,
the product went through three major design revisions, making this project the equivalent of three
product development efforts in one.
Original Design
Revision
Released
Company IT
Although I was hired to build the app, my role expanded to managing all
technical aspects of the company. These duties gave me a chance to setup and
administer many tools used in software development.
These Included:
- Apple for app development and publishing
- Facebook, Google+, Twitter for app sharing
- JIRA for project management
- Git Hub for source code management
- Verizon for connectivity
- 1 And 1 for email
- Go Daddy for domain hosting
- Google for collaboration tools
- Rack Space for managed server hosting
- Click A Tell for server to client SMS messaging
- Test Flight for app testing and distribution