Objective-C Developer in Zagreb, Croatia
Senior iOS Developer2016 - 2018Sports Insights (via Toptal)
Technologies: iOS, Swift, Xcode, CocoaPods, Core Graphics, Core Animation, iOS Store Kit (In App Purchases), Crashlytics, Analytics, iOS Instruments
- Built the iOS app Sports Insights from scratch in Swift using MVVM design pattern.
- Implemented all screens based on mockups and feedback from the client.
- Connected the application with the back-end API while communicating API compatibility and changes with the backend developer. The app screencast video can be seen here: https://vimeo.com/272246541.
iOS Developer2016 - 2017Airmee (via Toptal)
Technologies: iOS, Swift, Xcode, CocoaPods, Core Graphics, Core Animation, Maps, iOS Instruments
- Created an iOS application prototype in Swift for the product MVP phase.
- Implemented a UI based on the provided mockups.
- Connected the application with the back-end API.
Senior iOS Developer2016 - 2016Docler USA, LLC (via Toptal)
Technologies: iOS, Xcode, Objective-C, Swift
- Created a custom UICollectionView with functionality to drag and drop cells between multiple collections. Screencast: http://y2u.be/PVP-aCQyuTE.
- Refactored host iOS application code that was using an outdated open source library for the drag and drop functionality.
- Integrated a new component into the host app.
iOS Developer2016 - 2016Piqua (via Toptal)
Technologies: iOS, Objective-C, Xcode, CocoaPods, Core Graphics, Core Animation, Gesture Recognizers, iOS Instruments
- Created a SnapChat-like feature for photo/video capture (tap, long press) and edit. Screencast (temporary icons used during development): http://y2u.be/vEahlxVxT7Y.
- Translated design sketches for new features into app screens.
- Added different elements (text, finger drawing, sticker) as photo/video overlay and exporting merged media (photo+overlay or video+overlay).
- Created a finger-drawing module for drawing curves on the screen and making sure that lines look as if a human had drawn it with pencil.
- Ensured separation of concerns while writing a new feature. Ensured that the new feature is easily pluggable into the existing app.
Mobile Software Developer Engineer2015 - 2016Dream Factory
Technologies: iOS, Swift, Objective-C, Xcode, iOS Instruments, Android, Java, Android Studio
- Learned the Android platform and refreshed my Java skills.
- Created mobile SDKs for NextUser (http://www.nextuser.com), a user tracking and eCommerce personalization tool (iOS and Android SDKs). Tasks included gathering requirements, writing tests, implementing features, and creating test builds. Published iOS SDK with Cocoapods.
- Learned the Swift programming language.
- Created a module in the existing Objective-C app for data sync between local database (Core Data) and remote database (MS Azure) needed for offline app usage.
- Developed other iOS apps in Swift.
iOS Software Developer Engineer2014 - 2015Real Networks
Technologies: iOS, Objective-C, Xcode, iOS Instruments
- Developed RealTimes for iOS with Zagreb and Seattle teams (http://eu.real.com/mobile/apps.html).
- Developed and designed lower-level features of the application such as network layer, auto-backup feature, sharing modules, location services module, video transcoding, etc., focusing on decoupling, modularity, and regular refactoring.
- Created the auto-backup module for RealTimes, used for automatic uploads of photos and videos. Both foreground and background upload were supported. Additionally created a location-based module to wake up the application in intervals on significant location changes so that the uploads can be continued while ensuring that battery does not go empty because of the GPS tracking.
- Extracted functionality of generating story-like videos from RealTimes into a separate SDK and helped integrate that SDK with other clients on-site in their offices.
- Used Apple tools for profiling and detecting application bottlenecks (iOS Instruments).
iOS Software Developer Engineer2012 - 2014Five Agency
Technologies: iOS, Objective-C, Xcode, iOS Instruments
- Worked with a remote team as part of the outsourced local team with a nine-hour time difference and gained valuable experience working with a client remotely.
- Learned Objective-C in depth and best practices for building mobile apps.
- Used native iOS technologies and Agile programming methods.
- Implemented modules with defined APIs which were used in Real Player Cloud for iOS (later rebranded to RealTimes).
- Created modules for file upload and download which were used in the RealTimes iOS app for sharing of photos and videos with other devices and remote servers.
- Collaborated with designers on best practices for developer-designer interactions.
- Looks Good (Development)
It’s simple! When going somewhere and you want to look nice, your friends might not be around to help. Looks Good gives you access to fashionistas all over the world that want to help you look your best, instantly.
Built the iOS app Looks Good from scratch in Objective-C. This was a side project which challenged me to bring UX/UI into the focus and making no compromises when implementing new features. Every UI transition and user action had to be polished and logical so that the app could feel "alive" while at the same time not going to crazy with animations so that they don't "take over" the purpose of user actions.
App screencast video can be seen here: https://vimeo.com/189770810
- Let Me In (Development)http://five.agency/hackathon-project-letmein
At an internal company hackathon at Fiveminutes, I developed a mobile application for unlocking office doors. The idea was that all of the people in an office can unlock the office doors when in the office's WiFi range. Used iOS/Android technologies and Arduino on the project. We were a team of three developers, and my job was to build mobile clients where I used Titanium SDK as a cross-platform solution. Mobile clients were communicating with Arduino over networks.
- Swift Tutorial: An Introduction to the MVVM Design Pattern (Publication)On every new project, you have the privilege of deciding how you’ll architect the app and organize the code. But if you don’t pay attention, or you rush through coding, you risk ending up with spaghetti code. The solution? Use a proper design pattern. In this tutorial, Toptal Software Engineer Dino Bartošak explains how to implement an MVVM design pattern on a demo Swift application.
- Swift Best Practices and Tips by Toptal Developers (Publication)This resource contains a collection of Swift best practices and Swift tips provided by our Toptal network members.
LanguagesObjective-C, Java, Swift
FrameworksUIkit, Cocoa Touch, AFNetworking, Core Data
Libraries/APIsCore Animation, Alamofire, Google Maps, CocoaPods, Facebook Pop, Facebook SDK, Stripe
ToolsTrello, Xcode, iOS Instruments, Jira, Confluence, Auto Layout, Git, Android Studio
ParadigmsAgile Software Development, REST, Object-oriented Programming (OOP), Model View Viewmodel (MVVM)
PlatformsiOS, Amazon Web Services (AWS), Firebase, Android
StorageJSON, AWS S3
OtherMaps, Google Login
- Master's degree in Software Engineering and Information Systems2009 - 2012Faculty of Electrical Engineering and Computing - Zagreb, Croatia
- Bachelor's degree in Computer Science2006 - 2009Faculty of Electrical Engineering and Computing - Zagreb, Croatia