Senior iOS Developer (SwiftUI + Camera/AR + Payments)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Any

SALARY

Open

HOURS PER WEEK

40

DATE UPDATED

Jan 7, 2026

JOB OVERVIEW

We are building an iPhone app that allows users to:
Measure spaces using their phone (camera-based measurement)
Calculate material quantities based on square footage
Instantly see cost scenarios
Complete purchases or place a booking with a deposit
Receive confirmation via email and SMS

This is a real product with real users planned — not a prototype or learning project.

We are looking for one strong iOS developer who can own most of the build independently and work from clearly defined requirements.

This role starts with a milestone-based build and can become a long-term position if the MVP is delivered well.

Scope of Work (MVP)
iPhone app only
Swift + SwiftUI
Manual input for measurements (height + two walls)
Camera-based measurement (ARKit or equivalent)
Quantity calculations from square footage
Cost comparison screen
Stripe checkout (one-time payments + deposits)
Scheduling flow
Email/SMS confirmations
App Store submission support

Not included:
Android development
Cross-platform frameworks
Agencies or teams

Required Experience
Strong experience with Swift and SwiftUI
At least one iOS app published to the App Store
Experience using the camera or ARKit
Experience integrating Stripe payments
Comfortable working with a backend (Firebase, Supabase, or similar)
Able to work independently with defined requirements
Comfortable with milestone-based delivery
Nice to Have (Not Required)
AR measurement or mapping experience
SMS/email integrations
Backend logic experience
Experience launching MVPs
Compensation
Milestone-based payments (required)
Competitive pay for the right candidate
Opportunity for long-term work after MVP
How to Apply
Please answer all questions below.
Applications that do not answer these questions will not be reviewed.
Application Questions
1. App Store Experience
Please share a link to at least one iOS app you personally built and shipped to the App Store.
Briefly describe what you worked on.
2. Camera / AR Experience
Describe a feature you have built using the camera or AR.
What challenges did you face and how did you handle them?
3. Quantity Calculation Logic
Users will input or measure:

wall height
longest wall
perpendicular wall
Explain how you would calculate total wall square footage from this information.
(Explain the logic — no code required.)
4. Measurement Accuracy
Phone-based measurements can be inaccurate by several inches.
How would you design the app so quantity calculations remain reliable?
5. Build Order
If you were building this app, what would you build first and why?
List the order of major features.
6. Payments & Deposits
We need:
Full payment for some transactions
Partial deposit for others
Explain how you would structure this using Stripe.
7. Workflow & Ownership
Are you comfortable with:

Working from a shared GitHub repository?
Milestone-based payments?
Weekly progress check-ins?

(Please answer Yes/No and briefly explain.)
8. Final Question
What do you think will be the most difficult part of building this app, and why?
Important Notes
This role is for an individual developer, not an agency.
Clear requirements will be provided.
Ownership of code, accounts, and repositories remains with the company.
We value clear communication, practical problem-solving, and the ability to ship.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0139
Total Execution Time  0.0152
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,503,792 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-iOS-Developer-SwiftUI-CameraAR-Payments-1548892
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0068 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1548892
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 883302
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1548892
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-15',ej.date_added) duration_daysDATEDIFF('2026-04-15',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-15',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1548892' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1548892 
0.0009   UPDATE employer_jobs SET hit_counts '***Jan-07-2026=28***Jan-08-2026=93***Jan-09-2026=12***Jan-10-2026=10***Jan-11-2026=9***Jan-12-2026=8***Jan-13-2026=4***Jan-14-2026=5***Jan-15-2026=5***Jan-16-2026=6***Jan-17-2026=2***Jan-18-2026=3***Jan-19-2026=4***Jan-20-2026=1***Jan-21-2026=6***Jan-23-2026=3***Jan-24-2026=2***Jan-27-2026=2***Jan-28-2026=1***Jan-29-2026=1***Jan-30-2026=1***Feb-01-2026=2***Feb-02-2026=2***Feb-05-2026=2***Feb-06-2026=3***Feb-09-2026=1***Feb-10-2026=3***Feb-11-2026=3***Feb-12-2026=3***Feb-14-2026=1***Feb-15-2026=1***Feb-16-2026=3***Feb-17-2026=1***Feb-19-2026=1***Feb-22-2026=3***Feb-23-2026=1***Feb-24-2026=1***Feb-26-2026=1***Feb-27-2026=2***Mar-01-2026=1***Mar-02-2026=2***Mar-04-2026=1***Mar-06-2026=1***Mar-08-2026=1***Mar-09-2026=1***Mar-10-2026=1***Mar-11-2026=1***Mar-12-2026=1***Mar-14-2026=1***Mar-15-2026=1***Mar-17-2026=1***Mar-19-2026=1***Mar-22-2026=1***Mar-25-2026=1***Mar-26-2026=2***Mar-27-2026=1***Mar-30-2026=2***Apr-03-2026=2***Apr-04-2026=1***Apr-10-2026=1***Apr-13-2026=1***Apr-15-2026=1' WHERE job_id'1548892'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jan-2026=206***Feb-2026=34***Mar-2026=21***Apr-2026=6' WHERE job_id'1548892'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1548892' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1548892 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '883302'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)