Skip to content
Shahid Malla

Mobile apps

Mobile App Development: Android and iOS App Developer

I am Shahid Malla, a freelance Android and iOS app developer. I handle mobile app development for businesses and founders: one Flutter or React Native codebase for both stores, a Laravel or NestJS API and an admin panel behind it, and publishing under developer accounts that belong to you.

Free scoping call of about 30 minutes · written quote within one business day · two weeks of support after delivery

By Shahid Malla, Freelance WHMCS developer and web developer · Updated

What does mobile app development with me cover?

It covers four things, delivered by one person: the app for both stores, the API behind it, the admin panel your staff use and the publishing work. The quote prices each one separately. How a project runs day to day is explained on how I work.

What mobile apps are you building now?

I am currently building Android and iOS apps for Marmaids LLC, where I work as a freelance developer. For the same company I have built the API the apps talk to, a CRM and a WHMCS module, so the apps, the back office and the billing system share one set of data. The work is ongoing. The apps are the client's, so I do not publish their screens or internals here.

What does cross-platform mean, and when is a native app the better choice?

Cross-platform means one codebase produces both the Android app and the iPhone app, instead of two apps written separately. Flutter (Google's toolkit, written in Dart) draws its own interface. React Native (from Meta, written in JavaScript or TypeScript) drives the platform's own interface components. Both end up as real apps installed from the stores, not websites in a wrapper.

QuestionCross-platform (Flutter or React Native)Native (Swift and Kotlin)
How many codebases?One, shared by Android and iOSTwo, one per platform
Device featuresCamera, location, biometrics and maps through plugins, with a platform channel (Flutter) or a native module (React Native) for anything missingEvery system API, on the day Apple or Google releases it
Fits whenForms, lists, bookings, catalogs, chat and accounts, which covers most business appsHeavy Bluetooth or background work, augmented reality, advanced camera or audio processing, or an existing native team
Trade-offYou depend on the framework and its plugins keeping pace with new OS versionsHigher build and maintenance cost for the same screens

Some features stay native even in a cross-platform app. Home-screen widgets, an Apple Watch companion and similar system extensions are written in Swift or Kotlin and attached to the shared code, and I quote them as separate items. If the whole product leans on them, I say so before you commit.

Why does an app need a backend and an admin panel?

Because the app on the phone is only the screen. Accounts, orders, prices and rules live on a server that both platforms share. That backend and its admin panel are often as much work as the app, and a quote that leaves them out will grow later.

I build the API in Laravel or NestJS, the same tools I use for SaaS products. Two decisions go in on the first day:

  • Versioned routes. Paths start with /api/v1, because old app versions stay on customers' phones for months and must keep working. A minimum-version check lets the server tell an outdated app to update.
  • Token login. The app keeps a revocable token in the phone's secure storage (Keychain on iOS, Keystore on Android), never a password.

The admin panel lets staff look up a customer, edit content, refund an order and send notifications without calling a developer. Where the business already runs on a CRM, the API reads from it instead of keeping a second copy of every record.

How do push notifications work on Android and iOS?

Your server hands each message to Google's or Apple's delivery service, which passes it to the phone. On Android that service is Firebase Cloud Messaging (FCM). On iOS it is Apple Push Notification service (APNs), usually reached through FCM with an APNs key file (.p8) from your Apple developer account.

The user has to agree first: iOS asks for permission, and recent Android versions do too through POST_NOTIFICATIONS, so some users never receive a push. Every phone also has a device token that changes over time, so the backend stores tokens per user and removes dead ones. I ask for permission after a first order, not on the opening screen.

Do I have to use in-app purchase, or can I take payments with Stripe or Razorpay?

That depends on what you sell, and the stores decide, not the developer. As a general rule, digital goods used inside the app, such as subscriptions, premium features or downloadable content, go through Apple's and Google's own in-app purchase systems. Physical goods and services used outside the app, such as products you ship, rides, hotel stays or tickets, are paid through an ordinary processor like Stripe or Razorpay.

  • Both stores keep a commission on in-app purchases, which belongs in your pricing.
  • For in-app purchases, the backend confirms each transaction with Apple or Google, server to server, and follows their renewal and refund notifications before it grants or removes access.
  • For Stripe or Razorpay, a paid order is confirmed by the provider's signed webhook event, not by the screen the customer returns to.

The rules have exceptions by country and by app category, and they change. I check the current store guidelines for your case during scoping and write the result into the quote.

What do Apple and Google need before an app can be published?

They need a developer account in your name, a signed build, a complete store listing and honest privacy answers, and then they review the app. I prepare this checklist with you:

  1. Developer accounts. You enroll in the Apple Developer Program and register a Google Play Console account as the legal owner. Company enrollment involves identity checks and a D-U-N-S number, which can take days, so start early.
  2. App identifier. A bundle ID and application ID such as com.yourcompany.app. It cannot be changed after release.
  3. Signed builds. An Android App Bundle (.aab) for Google Play and an iOS build compiled with Xcode on a Mac.
  4. Privacy details. A public privacy policy URL, Apple's App Privacy answers, Google's Data safety form, and a purpose text for every permission, for example NSCameraUsageDescription in Info.plist.
  5. Reviewer access and account deletion. A demo login for the reviewer, and a way for users to delete their account if the app lets them create one.
  6. Test release. TestFlight on iOS and a testing track on Google Play. Google may ask a new personal account to run a closed test before it grants production access.

Who owns the code, the store accounts and the signing keys?

You do. You open the Apple and Google developer accounts in your name or your company's, and I work inside them as an invited user whose access you can remove. I do not publish client apps under my own account, because whoever holds the account controls the app, its updates and its income.

At handover you receive the source repository, the Android upload keystore with its passwords, the Firebase project, the API credentials and written release steps. Rights to the custom code are spelled out in the quote before work begins.

Which apps will I not build?

I decline apps that copy someone else's product or that are designed to get around store rules.

  • Clones of another company's app: its name, screens, icons or content.
  • Apps that hide their real function from reviewers, or that collect contacts, location or messages without telling the user why.
  • Fake reviews, paid ratings or bought installs.
  • A website wrapped in a web view and submitted as an app. Apple tends to reject these, and a good mobile site does the job better. See business website development.

I also do not promise approval dates, download numbers or a position in store search. Apple, Google and your own marketing decide those.

How do I hire an app developer for my project?

The first step is the free scoping call, which takes about 30 minutes. The written quote follows within one business day, as a fixed price per scope or at $55 to $65 per hour while the size is still unknown. Bring three things: who the app is for, the three screens they will use most, and how you expect to be paid. When you are ready, send me the brief.

Who this is for

  • Businesses that already sell or take bookings on the web and want an app for their repeat customers
  • Founders whose product depends on the phone itself: camera, location, notifications or offline use
  • SaaS companies that need a mobile companion to a web product they already run
  • Owners of a half-finished Flutter or React Native project who want one accountable developer to complete it

What is included

  • A written scope: screens, user roles, an API outline and the features postponed to a later version
  • One Flutter or React Native codebase that builds for both Android and iOS
  • A Laravel or NestJS API with token login and versioned routes
  • An admin panel in the browser for users, content, orders and notifications
  • Push notifications through Firebase Cloud Messaging and Apple's push service
  • Payments wired to match store rules: in-app purchase, Stripe or Razorpay
  • Test builds on TestFlight and a Google Play testing track before release
  • Store submission, then the repository and signing keys handed over, with two weeks of support

How the work runs

  1. 1

    Scoping call

    The first conversation is free and takes about 30 minutes. I ask who opens the app, what the phone must do that a website cannot, and how money moves. You have a written quote within one business day.

  2. 2

    Screens and API outline

    I list every screen and the API endpoint behind each one, and you review the list once before code starts. Removing a screen on paper costs nothing.

  3. 3

    Build against a staging API

    The app talks to a staging copy of the backend, never to live data. Test builds reach your own phone through TestFlight and a Play testing track, with a short update from me every working day.

  4. 4

    Store preparation

    You open the Apple and Google developer accounts and invite me. I prepare the listing text, screenshots, privacy answers and a demo login for the reviewers.

  5. 5

    Review and release

    I submit both builds, answer reviewer questions and fix what they reject. Apple and Google decide how long review takes, so I do not promise a release day.

  6. 6

    Handover

    You receive the repository, signing keys, environment notes and release steps in writing. Two weeks of support follow, covering faults in what was delivered.

Frequently asked questions

How much does it cost to build a mobile app?

There are two ways to pay: a fixed price for a scope written down in advance, or $55 to $65 per hour. What moves the price is the count of screens, user roles, payment flows and offline features, and whether the API and admin panel are new or already exist. Running costs are separate and go straight to the providers: Apple's yearly developer membership, Google's one-time registration fee, backend hosting and any paid services such as SMS or maps. The scoping call is free.

How long does mobile app development take?

It depends on scope, so I name a date only once the screens and features are agreed in writing. A few screens on an API that already exists is the quickest kind of project. A new backend, an admin panel, payments and offline sync each add time. Store review comes on top and is outside my control: a first submission can come back with questions before it is approved.

Should I choose Flutter or React Native?

Both produce real Android and iOS apps from one codebase, so the choice follows your situation. React Native fits when your team already writes React or TypeScript and may maintain the app later. Flutter fits when the design is heavily custom and must look identical on both platforms. I take projects as a Flutter app developer or as a React Native developer, and the written scope states which one I recommend and why.

Do I need a mobile app for my business, or is a website enough?

A website is enough when customers visit now and then to read, inquire or place an occasional order. A fast mobile website costs less to build and needs no store approval. A mobile app for your business earns its cost when the same people open it often, or when it needs push notifications, the camera, location or offline use. When a website would serve you better, you will hear that from me in the first call.

Can you take over an app another developer started?

Yes, once I have read the code. You get my findings in writing before any price. I need the source repository, access to the store accounts and the signing keys. A lost Android upload key can usually be reset through Google when the app uses Play App Signing. Without the source code there is nothing to continue, and a rebuild is the only route.

Will Apple and Google approve my app?

Nobody outside those companies can promise approval, and I do not. What I can do is remove the usual reasons for rejection before submitting: a working demo login for the reviewer, complete privacy answers, a way to delete an account inside the app, permission prompts that explain themselves, and payments that follow the store's rules. If a build is rejected, I read the reviewer's note, fix the cause and resubmit as part of the agreed scope.

What happens after the app is published?

An app needs upkeep after launch. Apple and Google release new system versions every year and raise their requirements with them, for example the Android API level that Google Play expects an app to target. Plan for at least one maintenance release a year, plus fixes when a payment or login provider changes its SDK. The two weeks of support that follow delivery are part of the price. Work after that is a new quote or hourly.

Related services

Ready to talk about your project?

Send the details and I reply within one business day with questions, an estimate and a plan.