I am a freelance iOS developer, technical consultant, and open-source contributor. I have a wealth of experience working with clients from around the world. I offer my services as an iOS/Android developer for hire to work with businesses of all sizes including start-ups, creative agencies, designers, individuals and other freelancers & developers.

The work I provide is of the highest quality, fully responsive, and tested in a wide range of devices. I take great care to ensure each project is well-architected, well-documented and easily maintainable so you can enhance an app as your company grows.

I maintain a high code quality standard and use static code analyzer. Writing code that is documented and easy to read means it can be maintained and scaled in the future and allows co-workers to quickly work with it.

I started сreating iOS apps since iOS 6 being a C# developer. In 2019 I switched to cross-platform development using Flutter. As a freelance iOS developer, I created more than 40 apps and formed an excellent portfolio. Here are few selected pieces from it:

Sometimes I contribute to other open-source projects and create my own. Check out my Github profile for other open-source contributions.

I also maintain a blog about software development, project management, and freelancing.

Skills

Mobile development

Dart/Flutter
Flutter
Swift
Swift

I had many years of experience as an iOS developer, creating native iPhone/iPad apps and games. I was using good old Objective-C before late 2014. Then I learned Swift and liked its simplicity and expressiveness. I noticed that using Swift dramatically reduces development time. Therefore I completely switched to Swift in early 2015. Swift brought us many valuable features, such as generics, enums with associated values, protocols, value types, and many others. My clients appreciated the transition to a new programming language because it reduced development costs by at least 10-20%.

In 2019 I switched to Dart/Flutter: Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Flutter allows developers to write one code for mobile applications and have them run on both Android and iOS platforms. That means my clients save their budget up to 40-50%, along with getting apps for both platforms.

My mobile development process includes using Visual Studio Code, Xcode, Android Studio, and Git (GitLab, GitHub, Bitbucket). I also use Xcode Instruments and Flutter DevTools for performance profiling.

Backend development

iOS and Android development are what I specialize in, but I also have a good knowledge of server backend technologies. Sometimes the client already has the server and the backend developer. Then we’re working together to architect and build an API to the server. In most cases, it’s a REST API (JSON), but I also have a great experience with WebSockets for real-time data transmitting.

I have a solid knowledge of TypeScript and use it to create a backend logic for server apps running Google Firebase. Google did a great job in making Firebase a backend platform for startups. I have completed more than ten projects using Google Firebase. These projects cover most Firebase features such as Cloud Firestore, Cloud Functions, Cloud Storage, Realtime Messaging, Social Sign-in, Crashlytics, Analytics, etc. I’d recommend Google Firebase for new projects as an easy to work with, easily scalable backend, and all-in-one solution.

During 2014-2017 I’ve been using Parse.com BaaS. After the Parse team had released Parse Server, I’ve migrated Parse.com backends to self-hosted Parse Server instances running on VPS. That was a good reason to learn how to work with MongoDB and the server node.js app directly and how things are organized on the server-side.

Payment processing integrations

Some of my clients sell physical goods or services through the iOS apps I’ve developed. To have better conversion rates, we integrated a payment processing functionality right into apps using third-party payment services, such as Stripe and PayPal. Both of them have iOS SDKs that I’m familiar with.

Working with payments is a non-trivial task requiring client-side integrations and server-side checks for security purposes. I implemented the necessary backend logic to ensure the payment process is safe for both the user and the client.

Stripe SDK has native support of Apple Pay, so we’ve enabled it to eliminate the need to type card or shipping details manually.

Design

I convert designs to high-performance code while respecting your designer’s compositions. I consider design to be just as important as development and aim to combine both to produce a high-quality user experience. I always keep in mind that iOS users are very meticulous people in terms of the user interface.

I tend to follow Apple Human Interface Guidelines in composing UI for iOS apps. When I see my client wants to add a control uncommon for the iOS platform or apply a UI pattern, which is not fitting a small iPhone screen, I let the client know about that and suggest an alternative solution according to Apple HIGs.

The same rule applies to Android and its Material Design.

Please note I’m not a designer. I can create simple interfaces using standard iOS and Android controls, but I suggest hiring a professional designer to draw a great UI.

Achievements

In my spare time, I like to help other iOS developers on Stack Overflow:

profile for Andrey Gordeev at Stack Overflow, Q&A for professional and enthusiast programmers

My profile is in the top 5% of ios, iphone, swift, objective-c and sql tags. Most of the reputation I earned by answering Flutter and iOS-related questions, but there are also popular answers for c#, sql and vba/vb.net tags.

Stack Overflow Developer Story shows off my projects, blog posts, and top SO answers chronologically.

Upwork is my main channel to work with clients since 2012. My Upwork profile is pretty strong:

My clients are delighted with the work I deliver as well. Almost all of the reviews I got have five stars.