Using: Objective C, XCode, Java, Eclipse, SQLite
This was spin-off app from the StudyNWalk apps. As a market test, I created an app that taught plant names and the latin name equivelents. Feedback was encouraging, however the lack of pictures prompted me to take another look at the UI. The result was an app that was more graphics-centric; a list of images could be swiped left/right with annotations for names and additional information. A deeper level of desciption can also be shown in app, with a link to the relevant wiki page.
Each app contains a selection of niche items, such as Plants, Birds and Toys. To facilitate data collection, A mac/windows app was created (modification to ANKI Card Generator) that used the Wikipedia API to scrape multiple page entryies' Abstracts and pictures to build a sqlite db files and content usable in iOS/Android Apps.
A process was set up to speed up content abstraction and app creation, making it possible to create a new app with unique content within 8 hours.
Monitisation comes in the form of Ads, IAP Ads removal, and ""Pro"" (non-free) Versions.
On App-Store
On Google Play
Using: C#, Unity, Parse.com DB
This revamp the UI in StudyNWalk makes it more intuitive, giving the feeling that the user was actually moving a card around, and also as an exercise in learning Unity development. The app was re-developed from the ground up but still utilises the same data structures for sqlite db and resources, meaning old data sets could be reused in updating the app. Also, the deck-creation tool from the Android version can be reused to create data for this new app.
A new feature of downloading content was introduced. Decks' database and media files were bundled into packages and hosted on a Parse.com database. The user could then download a Deck online which would download the content to the local database and media folder and then use to study from any time.
Building for Unity has allowed for Windows Mobile App deployment with little additional effort, so I have recently entered into the Windows Phone App Store with the StudyNWalk app.
On Google Play
On App-Store
On Windows Phone Store
Platform: iOS, Android
Using: Objective C, XCode, Java, Eclipse, SQLite
Over the year I spent in Taiwan, I used the ANKI app every day to revise Chinese. I found 2 major issues, I spent 1 hour a day commuting and I couldn't effectively find a way to study my own content whilst walking. Secondly, Feedback from my previous ANKI Card Generator was the people who wanted to create their own content found the app to be confusing and unusable. My solution for both problems was to create my own Flashcard Learning app with more appropriate UI and an easier method to generate content.
In StudyNWalk, the user controls the app using swiping gestures. Swipe up to reveal the card answer, then Left or Right if he or she knew the answer. Each deck contains two modes, Normal and Walking mode. In Normal mode, the permutation of the card data is such that the user can learn to read Chinese text in addition to listening practise. Walking mode drops the reading part, where there are only listening cards. The word answers are also spoken in users' native language, meaning that it would be possible to progress through the cards without looking at the screen and only using sound. Coupled with the swiping gestures, it means I could learn Chinese whilst walking outside and using earphones.
A deck creator was made in the Android version, whereby the user uploads a CSV file of custom word pairs and the app would create its own decks, downloading the audio translations from google translate directly.
I found that users would rather use pre-created decks than create their own, so in the end I created multiple versions of the app with pre-existing content packs. This can be used for learning content outside of languages and the highest revenue driving app has been for CFA, an international Finance qualification.
By combining different tools and data sources, I managed to get start-to-end on a new build down to 1 day.
Monetisation is down by means of Ads and IAP to remove Ads and to unlock additional courses in the app.
https://play.google.com/store/apps/details?id=com.martinogg.walk&hl=en
https://itunes.apple.com/us/app/studynwalk-study-walk-srs/id739018987?mt=8
Using: C#, GTK#, Mono
I used the free flashcard app ANKI to help study Chinese. ANKI imported CSV files using LATEX to link in media (audio and pictures) to make decks of cards that could be synced with multiple devices. I used my own Chinese study books and created my own decks based on the vocabulary sections. To create the decks, I created an Mac/Windows app that created a database of word pairs and downloaded accompanying voice samples from google translate to create decks with voices. The exported mp3s and CSV file could then be imported into ANKI and studied from there.
A core feature of my own app was to create a card structure definition system that would allow any permutation of words and associated voices within the word pair.
The app was written in C# / GTK# in Mono on Mac and windows. It used a local sqlite db file to hold the word pairs and card definitons.
Source code here.
Platform: Sony PSM (Vita, Sony mobile)
Using: C#, Mono
This was a port of a game on Android, where the soccer-champ hero uses a soccer ball to kill advancing zombies. I was asked to help out on some performance bugs. It turned out that the PSM service on VITA had performance issues with playing multiple sound effects and from loading resources into memory (possibly due to the encryption used in memory sticks) I had only the windows emulator (which showed no signs of slowdown) so I ended up creating a Profiler class that my colleague used on VITA hardware to give information on performance bottlenecks in order to track down the problem.
C# PSM Profiler @ Github: https://github.com/martinogg/MOProfiler/
Android app
Platform: iOS
Using: Objective C, XCode
The system used a bespoke server to allow administrators to create questionnaires. These could then be deployed to iPad and Blackberry clients for end-users to take the questionnaires and have the data sent back to the server for presenting. Different question types were available such as Multiple choice, Name/Text entry, Number entry.
Platform: iOS
Using: Objective C, XCode, Microsoft Sharepoint
iBinder was an app developed as a bespoke organiser for a client, meant to replace paperwork for meetings. The system was a stylised iPad client for a Sharepoint CMS Meeting space, including file storage, syncing and annotating, scheduling and presentations. The system used an enhanced level of security, using certificates and keystore provided by the client's security system.
Platform: iOS
Using: Objective C, XCode, Microsoft Sharepoint
iEvent was a series of bespoke apps for various departments within our client's organisation. Content (videos, pdfs, documents, pictures) relevant to a department were packaged into "categories" providing a 3-level structure for navigating content in an intuitive and consistent manner. Content was managed on client-side Sharepoint CMS and could be updated by the clients themselves. A structure guide was given to help. The app would check for updates from a server and download / unpack the content if required. Further versions of the apps included pre-packaged content for bespoke events, without requiring a back-end server. These apps were hosted on the client's own internal "app-store"
Platform: Android
Using: Java, Eclipse, COCOS2D
This app was a port of an iOS app that encouraged sound sleeping by listening to a song with embedded frequencies that helped the user to fall asleep. An accompanying flash-style video was included with each song. Each song video was represented by XML descriptions of objects in the scene with timings, animations and special effects.
Google Play
Platform: Android
Using: Java, Eclipse, LAMP, SQL, PHP
Before health monitoring bracelets became mainstream, a Tokyo concepting company were looking to prototype an ear-mounted device that recorded heart-rate and step-counts for use in exercise sessions. The data was held in a wearable bluetooth device and transferred to an Android app using bluetooth. Our responsibility was to connect wirelessly to the device, download and save the data locally then present the data in graph format according to client given design and specifications. A back-end server was implemented (first on a LAN LAMP server, then later hosted on a web server) to backup users' data and sync between multiple devices.
Platform: iOS
Using: Objective C, XCode, COCOS2D
This project involved working remotely, making a paged manga-style app with additional animation and sound effects. A turn-based interactive fight scene was included; individual pages of story with branching / looping parts and enemy/player health scores. The player had the choice of 2 attacks or defend. Depending on the enemy state indicated, the user should attack or defend at the right times to inflict damage and defend attacks. The project was used as a manga installation event at Tokyo Akihabara UDX in 2011.
Platform: iOS
Using: Objective C, XCode, COCOS2D
This project involved working remotely, keeping in contact by Skype with Project manager and Organiser in Tokyo. The game used COCOS2D and consultation was made with design to strike a balance between desired functionality and development cost/time.
Download for free on iPhone
Platform: Windows PC
Using: C++, FORTRAN, Visual Studio, IRRLICHT 3D Renderer
Ships explosion testing was done on the River Forth, near Edinburgh by MoD. Over time computer technology moved in to simulate explosions using data collected over the preceding decades. The SURVIVE Department at QinetiQ is a team that produce bespoke reports on ships and submarines for specific emergencies, such as sustaining attacks in war situation or emergencies such as fires. My job was to maintain the current application and also to add a new graphics renderer (using IRRLICHT 3rd party open-source renderer) to help in the visualisation of data sets created by a separate FORTRAN simulation project.
More info here
Platform: PS2
Using: C++, ProDG IDE
This game used the Buzz controller (a Quiz style controller with a big red buzzer button on top) to make 2/4 player kids party games, similar to Mario party. The game used the Buzz JR Game engine (developed externally) and 3 groups of 2-man teams (programmer and artist) were set on a 2-week cycle to produce a mini-game each.
Game Info
Platform: Windows PC
Using: C++, DirectX, C#
This free game served as an advertisement for the new Audi TT model. The player drove the Audi TT, collecting pickups to evolve the car and scenary in an abstract world, changing in time with the music. My role involved development of a Level Editor/Music tracker tool in C# (Similar to the marker tool using Audacity). This allowed the level designer to create different sets of ""beat"" timings throughout the song, synchronised with each of the 4 songs. These timings were used to affect pickup positioning, track "windyness", background objects positioning and visualisation effects. I also helped out on the game software development on Windows PC, using DirectX
Game Info
Platform: PS3 PSN (downloadable title)
Using: C++, ProDG IDE
This game contained 3 2D puzzle games, as an early downloadable title on the PSN Playstation online store. My role was working on the Aquatica game, a tetris / style game where clearing lines of same-colour blocks would disrupt the opponent.
Game Info at Sony
Platform: PS3
Using: C++, ProDG IDE
Cohort Studios was employed by Sony to help on the development of this game by Evolution studios (WRC on PS1, PS2) Man power was provided for artwork and development in Dundee and Runcorn, near Liverpool. My own contribution was in the menu system, programmed in C++ but also using bespoke artist tools for design
More Game Info at Sony
Platform: Windows PC, ATMEL SoC
Using: C#, Embedded C, ATMEL ATMEGA programming
The Fluiditi team were responsible for cash security systems on NCR Cash Machines. As a deterrent, Cash Cassettes are rigged to destroy currency if the system detects that security is breached. This is done by spraying corrosive ink on to the notes. My role was to assist in software maintenance of the current system and to aid in development of a new system that tracked movement of the Cassettes between delivery vans and on-site ATMs. Work included prototyping a system using C# on Windows and Development in Embedded C on external ATMEGA SoC Chips using a USB Development board
More info on Security system
An Android app of my portfolio can be found here.
iPhone app here!
StudyNWalk Unity Apps
A cross-platform Remake of the StudyNWalk app with DLC and more intuitive UI
More infoUsing: C#, Unity, Parse.com DB
This revamp the UI in StudyNWalk makes it more intuitive, giving the feeling that the user was actually moving a card around, and also as an exercise in learning Unity development. The app was re-developed from the ground up but still utilises the same data structures for sqlite db and resources, meaning old data sets could be reused in updating the app. Also, the deck-creation tool from the Android version can be reused to create data for this new app.
A new feature of downloading content was introduced. Decks' database and media files were bundled into packages and hosted on a Parse.com database. The user could then download a Deck online which would download the content to the local database and media folder and then use to study from any time.
Building for Unity has allowed for Windows Mobile App deployment with little additional effort, so I have recently entered into the Windows Phone App Store with the StudyNWalk app.
On Google Play
On App-Store
On Windows Phone Store
Dictionary Apps
A Series of Apps displaying locally stored information about niche topics
More infoUsing: Objective C, XCode, Java, Eclipse, SQLite
This was spin-off app from the StudyNWalk apps. As a market test, I created an app that taught plant names and the latin name equivelents. Feedback was encouraging, however the lack of pictures prompted me to take another look at the UI. The result was an app that was more graphics-centric; a list of images could be swiped left/right with annotations for names and additional information. A deeper level of desciption can also be shown in app, with a link to the relevant wiki page.
Each app contains a selection of niche items, such as Plants, Birds and Toys. To facilitate data collection, A mac/windows app was created (modification to ANKI Card Generator) that used the Wikipedia API to scrape multiple page entryies' Abstracts and pictures to build a sqlite db files and content usable in iOS/Android Apps.
A process was set up to speed up content abstraction and app creation, making it possible to create a new app with unique content within 8 hours.
Monitisation comes in the form of Ads, IAP Ads removal, and ""Pro"" (non-free) Versions.
On App-Store
On Google Play
StudyNWalk Apps
Flash Cards app with unique UI and functionality to allow studying without looking at the screen
More infoPlatform: iOS, Android
Using: Objective C, XCode, Java, Eclipse, SQLite
Over the year I spent in Taiwan, I used the ANKI app every day to revise Chinese. I found 2 major issues, I spent 1 hour a day commuting and I couldn't effectively find a way to study my own content whilst walking. Secondly, Feedback from my previous ANKI Card Generator was the people who wanted to create their own content found the app to be confusing and unusable. My solution for both problems was to create my own Flashcard Learning app with more appropriate UI and an easier method to generate content.
In StudyNWalk, the user controls the app using swiping gestures. Swipe up to reveal the card answer, then Left or Right if he or she knew the answer. Each deck contains two modes, Normal and Walking mode. In Normal mode, the permutation of the card data is such that the user can learn to read Chinese text in addition to listening practise. Walking mode drops the reading part, where there are only listening cards. The word answers are also spoken in users' native language, meaning that it would be possible to progress through the cards without looking at the screen and only using sound. Coupled with the swiping gestures, it means I could learn Chinese whilst walking outside and using earphones.
A deck creator was made in the Android version, whereby the user uploads a CSV file of custom word pairs and the app would create its own decks, downloading the audio translations from google translate directly.
I found that users would rather use pre-created decks than create their own, so in the end I created multiple versions of the app with pre-existing content packs. This can be used for learning content outside of languages and the highest revenue driving app has been for CFA, an international Finance qualification.
By combining different tools and data sources, I managed to get start-to-end on a new build down to 1 day.
Monetisation is down by means of Ads and IAP to remove Ads and to unlock additional courses in the app.
https://play.google.com/store/apps/details?id=com.martinogg.walk&hl=en
https://itunes.apple.com/us/app/studynwalk-study-walk-srs/id739018987?mt=8
ANKI Card Generator
A C# PC tool to aid in creation of Decks for Flashcards
More infoUsing: C#, GTK#, Mono
I used the free flashcard app ANKI to help study Chinese. ANKI imported CSV files using LATEX to link in media (audio and pictures) to make decks of cards that could be synced with multiple devices. I used my own Chinese study books and created my own decks based on the vocabulary sections. To create the decks, I created an Mac/Windows app that created a database of word pairs and downloaded accompanying voice samples from google translate to create decks with voices. The exported mp3s and CSV file could then be imported into ANKI and studied from there.
A core feature of my own app was to create a card structure definition system that would allow any permutation of words and associated voices within the word pair.
The app was written in C# / GTK# in Mono on Mac and windows. It used a local sqlite db file to hold the word pairs and card definitons.
Source code here.
Pro Zombie Soccer Game
Support for a colleague working on a PS Vita game
More infoPlatform: Sony PSM (Vita, Sony mobile)
Using: C#, Mono
This was a port of a game on Android, where the soccer-champ hero uses a soccer ball to kill advancing zombies. I was asked to help out on some performance bugs. It turned out that the PSM service on VITA had performance issues with playing multiple sound effects and from loading resources into memory (possibly due to the encryption used in memory sticks) I had only the windows emulator (which showed no signs of slowdown) so I ended up creating a Profiler class that my colleague used on VITA hardware to give information on performance bottlenecks in order to track down the problem.
C# PSM Profiler @ Github: https://github.com/martinogg/MOProfiler/
Android app
iQuestionaire App
An app to download and present questionnaires. Information is recorded locally and uploaded to a server when available for collating and presentation
More infoPlatform: iOS
Using: Objective C, XCode
The system used a bespoke server to allow administrators to create questionnaires. These could then be deployed to iPad and Blackberry clients for end-users to take the questionnaires and have the data sent back to the server for presenting. Different question types were available such as Multiple choice, Name/Text entry, Number entry.
iBinder App
Support developer on a bespoke Sharepoint CMS Client for client
More infoPlatform: iOS
Using: Objective C, XCode, Microsoft Sharepoint
iBinder was an app developed as a bespoke organiser for a client, meant to replace paperwork for meetings. The system was a stylised iPad client for a Sharepoint CMS Meeting space, including file storage, syncing and annotating, scheduling and presentations. The system used an enhanced level of security, using certificates and keystore provided by the client's security system.
iEvent App
Display local events and information for bespoke client’s department. Online and Offline versions
More infoPlatform: iOS
Using: Objective C, XCode, Microsoft Sharepoint
iEvent was a series of bespoke apps for various departments within our client's organisation. Content (videos, pdfs, documents, pictures) relevant to a department were packaged into "categories" providing a 3-level structure for navigating content in an intuitive and consistent manner. Content was managed on client-side Sharepoint CMS and could be updated by the clients themselves. A structure guide was given to help. The app would check for updates from a server and download / unpack the content if required. Further versions of the apps included pre-packaged content for bespoke events, without requiring a back-end server. These apps were hosted on the client's own internal "app-store"
Prescription for Sleep App
Flash-Like animations with music to encourage sound sleeping
More infoPlatform: Android
Using: Java, Eclipse, COCOS2D
This app was a port of an iOS app that encouraged sound sleeping by listening to a song with embedded frequencies that helped the user to fall asleep. An accompanying flash-style video was included with each song. Each song video was represented by XML descriptions of objects in the scene with timings, animations and special effects.
Google Play
Aero Fitness App
Android Prototype for Health monitoring software, recording metrics from wearable Bluetooth device in exercise settings
More infoPlatform: Android
Using: Java, Eclipse, LAMP, SQL, PHP
Before health monitoring bracelets became mainstream, a Tokyo concepting company were looking to prototype an ear-mounted device that recorded heart-rate and step-counts for use in exercise sessions. The data was held in a wearable bluetooth device and transferred to an Android app using bluetooth. Our responsibility was to connect wirelessly to the device, download and save the data locally then present the data in graph format according to client given design and specifications. A back-end server was implemented (first on a LAN LAMP server, then later hosted on a web server) to backup users' data and sync between multiple devices.
Interactive Manga App
Demonstration manga with game-like interactive elements on iPad
More infoPlatform: iOS
Using: Objective C, XCode, COCOS2D
This project involved working remotely, making a paged manga-style app with additional animation and sound effects. A turn-based interactive fight scene was included; individual pages of story with branching / looping parts and enemy/player health scores. The player had the choice of 2 attacks or defend. Depending on the enemy state indicated, the user should attack or defend at the right times to inflict damage and defend attacks. The project was used as a manga installation event at Tokyo Akihabara UDX in 2011.
Bag Panic App
2D Action Conveyor belt game on iPhone
More infoPlatform: iOS
Using: Objective C, XCode, COCOS2D
This project involved working remotely, keeping in contact by Skype with Project manager and Organiser in Tokyo. The game used COCOS2D and consultation was made with design to strike a balance between desired functionality and development cost/time.
Download for free on iPhone
QinetiQ SURVIVE
Simulation software for attacking and defending Ships and Submarines in Defence Industry
More infoPlatform: Windows PC
Using: C++, FORTRAN, Visual Studio, IRRLICHT 3D Renderer
Ships explosion testing was done on the River Forth, near Edinburgh by MoD. Over time computer technology moved in to simulate explosions using data collected over the preceding decades. The SURVIVE Department at QinetiQ is a team that produce bespoke reports on ships and submarines for specific emergencies, such as sustaining attacks in war situation or emergencies such as fires. My job was to maintain the current application and also to add a new graphics renderer (using IRRLICHT 3rd party open-source renderer) to help in the visualisation of data sets created by a separate FORTRAN simulation project.
More info here
Dino Den PS2
Party game for Kids
More infoPlatform: PS2
Using: C++, ProDG IDE
This game used the Buzz controller (a Quiz style controller with a big red buzzer button on top) to make 2/4 player kids party games, similar to Mario party. The game used the Buzz JR Game engine (developed externally) and 3 groups of 2-man teams (programmer and artist) were set on a 2-week cycle to produce a mini-game each.
Game Info
Journey Through Sound
Windows PC Ad-utainment game for Audi TT
More infoPlatform: Windows PC
Using: C++, DirectX, C#
This free game served as an advertisement for the new Audi TT model. The player drove the Audi TT, collecting pickups to evolve the car and scenary in an abstract world, changing in time with the music. My role involved development of a Level Editor/Music tracker tool in C# (Similar to the marker tool using Audacity). This allowed the level designer to create different sets of ""beat"" timings throughout the song, synchronised with each of the 4 songs. These timings were used to affect pickup positioning, track "windyness", background objects positioning and visualisation effects. I also helped out on the game software development on Windows PC, using DirectX
Game Info
Go! Puzzle PSN
3 puzzle games in one title, Playstation 3 downloadable
More infoPlatform: PS3 PSN (downloadable title)
Using: C++, ProDG IDE
This game contained 3 2D puzzle games, as an early downloadable title on the PSN Playstation online store. My role was working on the Aquatica game, a tetris / style game where clearing lines of same-colour blocks would disrupt the opponent.
Game Info at Sony
Motorstorm PS3
Release game for PS3
More infoPlatform: PS3
Using: C++, ProDG IDE
Cohort Studios was employed by Sony to help on the development of this game by Evolution studios (WRC on PS1, PS2) Man power was provided for artwork and development in Dundee and Runcorn, near Liverpool. My own contribution was in the menu system, programmed in C++ but also using bespoke artist tools for design
More Game Info at Sony
NCR Fluiditi
Maintenance of security systems on ATMs
More infoPlatform: Windows PC, ATMEL SoC
Using: C#, Embedded C, ATMEL ATMEGA programming
The Fluiditi team were responsible for cash security systems on NCR Cash Machines. As a deterrent, Cash Cassettes are rigged to destroy currency if the system detects that security is breached. This is done by spraying corrosive ink on to the notes. My role was to assist in software maintenance of the current system and to aid in development of a new system that tracked movement of the Cassettes between delivery vans and on-site ATMs. Work included prototyping a system using C# on Windows and Development in Embedded C on external ATMEGA SoC Chips using a USB Development board
More info on Security system
#1 by Mlieb at August 15th, 2015
| Quote
Does your Latin Plant app contain pronunciations?
#2 by martinogg at January 13th, 2016
| Quote
Hi, no pronunciations yet, but I’m working on it!