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. During my career as a freelance iOS developer, I created more than 40 apps and formed a good 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 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 it’s simplicity and expressiveness. I noticed that using Swift greatly reduces development time, therefore I completely switched to Swift in early 2015. Swift brought us many useful features, such as generics, enums with associated values, protocols, value types and many others. All 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: a 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 set of code for mobile applications and have them run on both Android and iOS platforms. This means my clients save their budget up to 40-50% along with getting apps for both platforms.

My mobile development process the use of tools such as 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 is 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 realtime data transmitting.

I have a good 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 5 projects using Google Firebase. These projects cover most of 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, easy scalable backend and all-in-one solution.

During 2014-2017 I’ve been using Parse.com BaaS. After 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 directly work with MongoDB and the server node.js app, and how things are organized on the server side.

Payment processing integrations

Some of my clients sell physical goods or services through iOS apps I’ve developed. In the sake of having 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 not only client-side integrations but also server-side checks for security purposes. I implemented the necessary backend logic to make sure the payment process is safe for both the user and the client.

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

Design

I convert designs to high-performance code whilst respecting your designer’s compositions. I consider design to be just as important as development and aim to combine both to produce high-quality user experience. I always keep in mind that iOS users are very fastidious people in terms of 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 iOS platform or apply a UI pattern, which is not fitting 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 you hire 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 top 5% amongst others in ios, iphone, swift, objective-c and sql tags. Most of the reputation I earned by answering iOS/Swift-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 in a chronological order.

Upwork is my main channel to work with clients since 2012. My Upwork profile is pretty strong: I have 100% job success score, Top Rated badge, more than 80 projects completed and more than 4,000 hours tracked. My clients are very satisfied with the work I deliver as well. All of the reviews I have have 5 stars.