Participation in the development of different projects
I. A mobile project which functions as a search engine, being connected to the company's services and providing detailed information on different search queries, such as people residing in Sweden, Swedish businesses and places in Sweden. Additional to the search features, the app has mapping and localization features, including routing and turn-by-turn navigation provided by Mapbox. For many businesses and public services the app has a feature allowing users to leave reviews for businesses and upload their photos. Since the application started as a phone directory, now it allows the users to identify phone numbers while calling and block phone numbers using the Apple’s CallKit.
II. A betting simulator.
- The structure of the project follows the classic MVC architecture, offering the users a tab bar with multiple screens which have a different functionality. The app allows the users to view all the available games, purchase entries for betting, place one or multiple bets on their preferred outcome, as well as viewing their results along with all their friends' results. The application was connected to a web server providing RESTful services, where clients could query the available games and outcomes, application-wide leagues and leader boards and, also, customize the leagues created by each player. The app integrates the Facebook SDK and allows the users to play against their real-life friends.
- Sole creation and management of the application, acting as the main iOS Developer.
- Using UIKit and lots of UI customized components.
- Making sure all the workflows and services work according to the specifications.
- Discussing the particularities of the API with the back-end team.
III. A block-based puzzle game, a UI-based project, whose all visual components, menu and whole game play are entirely created in UIKit and optimized for it.
The user has a fixed number of moves and has to maximize the score to compete against his or her friends. The score is calculated based on the number of completed lines the user makes. The game is connected to a RESTful API service which manages the score of each player in a multi-level leader board game.
- Definition of features, design of UI components, game play logic, server communication and App Store release.
IV. A variation of the block-based puzzle game, sharing the concept of multi-level leader board game, and differing through the game type and the whole game play mechanism. The purpose of this game is to connect multiple dots with the same color in order to maximize the user's own score in a limited amount of moves.
- Sole creation and management of the game, acting as the main iOS Developer.
- Designing the API structure in the identical way as the previous block-based puzzle game.
V. A multi-player bingo game designed for iOS platforms.
- Developing new game features using the SpriteKit framework for game development.
- Handling the network communication using socket streams and HTTP requests to RESTful APIs because the application requires a constant connection to a game server.
- Working with StoreKit because some features were In-App Purchases.
- Part of a small team, observing the full process of releasing a product, from the specification phase, to development, testing, continuous integration and, finally, the iTunes Connect and releasing the process to the App Store.
- Gaining knowledge about the Apple processes, such as Certificate and Profile management and App and In-App Products mangement on the iTunes Connect platform.
VI. An iOS SKMaps SDK, developed as an Objective-C layer over a static C++ library, allowing iOS developers to quickly build applications with maps, navigation, searches and many other functionalities related to mapping.
- Building a developer-friendly, easily to integrate maps SDK using the company's NG mapping and navigation engine and OSM data.
- Creating a well-defined object hierarchy, using different Design Patterns to make the map engine easy to use to native iOS developers.
- Interacting with and debugging C++ code and modelling Objective-C objects as an interface instead of static calls.
- Offering technical support for the SDK third-party users, making scripts to automatically generate the SDK and its documentation, configuring continuous integration builds (using Hudson and Jenkins), working with version control (SVN) and configuring CocoaPods for integrating the SDK into a project.
VII. A GPS navigation application.
Integrating the functionalities of the SKMaps SDK into the client's application.
- Providing support for the new features requested by the application, which were not included initially in the SDK.
- Strongly collaborating with the UI and the server teams in order for the SDK to fulfill all the product owners' requirements.
VIII. A digital map.
- Implementing bigger, well-defined components for the application.
- Working on both the UI and application logic.
- Implementing the offline package download component, which was separated into the UI part, mainly including screens with available downloads, download progress, download queue management and the business logic part.
- Asynchronous downloading of files, fixing networking errors and exceptions handling, managing the integration between the downloading operations and the unzipping operations, focusing on the communicationwith a persistent data storage (Core Data), using UI concurrency techniques (lazy loading), and creating an extensible architecture for this component.
IX. A GPS navigation application.
- Building different components for the app.
- Mainly focusing on UI and accessibility components.
- Building customized UI elements, different workflows in the application and accessibility support elements for the entire application.