All 60 tasks, level by level

The real graded iOS Development tasks the portal assigns, grouped into three levels.

The portal assigns these iOS Development tasks. Finish Level 1 before Level 2 and Level 2 before Level 3. Your mentor may mark some tasks as required for the certificate.

Level 1: Foundations (24 tasks)

TaskWhat to do
Set up Xcode or a Swift playgroundInstall Xcode (or Swift Playgrounds / an online Swift compiler if you have no Mac) and run your first Swift program. Note your setup in a repo named ios-internship.
Swift basicsWrite examples of let/var, optionals, if let, guard, structs, enums and closures.
Collections and functionsUse arrays, dictionaries and sets with map, filter and reduce to solve 5 small problems.
Structs vs classesExplain value vs reference types with code that proves the difference.
ProtocolsDefine a protocol, make two types conform, and use it through a protocol type.
First SwiftUI viewBuild a profile screen in SwiftUI with VStack, HStack, Image, Text and Button.
State in SwiftUIBuild a counter and a form using @State and @Binding.
Lists and navigationShow a List of items and open a detail screen with NavigationStack.
Layout and modifiersRecreate a real app's settings screen using spacing, padding, frames and modifiers.
Assets and dark modeAdd app icons, colours and images to the asset catalogue with dark mode variants.
Error handlingUse throws, do/try/catch and Result in a small parsing example.
Swift Package ManagerAdd one Swift package dependency to a project and use it.
Swift genericsWrite a generic stack and a generic function with constraints.
ExtensionsAdd useful extensions to String, Date and Array and test them.
Enums with associated valuesModel network results and screen states with enums.
SwiftUI formsBuild a settings form with toggles, pickers and steppers.
Sheets and alertsPresent sheets, full-screen covers and alerts in the right situations.
Custom view modifiersWrite reusable view modifiers for card style and error banners.
SF SymbolsUse SF Symbols with rendering modes and variable colours.
AnimationsAdd implicit and explicit animations and a matched geometry effect.
PreviewsWrite previews for light, dark, large text and different devices.
Git for Xcode projectsSet up a .gitignore for Xcode and explain project file merge conflicts.
LocalisationLocalise your app into an Indian language with a String Catalog.
App icon and launch screenAdd an app icon and a launch screen.

Level 2: Building real features (20 tasks)

TaskWhat to do
MVVM with ObservableObjectMove screen logic into a view model using @Observable or ObservableObject.
Networking with URLSessionLoad JSON from a public API with async/await and Codable, with loading and error states.
Images from the networkLoad remote images with AsyncImage, with placeholder and failure views.
PersistenceSave favourites with SwiftData or Core Data and show them on a separate tab.
User settingsStore preferences with @AppStorage and apply them across the app.
Tab bar appOrganise the app into three tabs with their own navigation.
ConcurrencyLoad two API calls in parallel with async let and explain actors and the main thread.
Unit testsWrite XCTest or Swift Testing tests for your view model and model parsing.
PermissionsRequest photo library or location permission with a clear usage description.
Firebase or Sign in with AppleAdd sign-in with Firebase Authentication or Sign in with Apple.
Search and filteringAdd searchable lists with scopes and tokens.
PaginationLoad more items as the user scrolls a list.
Camera and photosPick and display photos with PhotosPicker.
MapKitShow places on a map with annotations and user location.
Combine or async sequencesDebounce search input with Combine or AsyncSequence.
Dependency injectionInject services into view models with protocols for testing.
KeychainStore a login token securely in the Keychain.
Error handling UIShow friendly network, server and empty states.
Analytics and crash reportsAdd Firebase Analytics and Crashlytics (or a similar free tool).
Deep linksOpen a specific screen from a URL scheme or universal link.

Level 3: Professional work and capstone (16 tasks)

TaskWhat to do
Offline supportCache API data locally and show it when the network is off.
UI testsWrite XCUITest tests for your main user flow.
Performance with InstrumentsProfile the app with Instruments, fix a slow view or memory issue and record the result.
AccessibilitySupport Dynamic Type and VoiceOver labels, and test with VoiceOver on.
Push notificationsSet up local notifications (and remote ones if you have a developer account) that open the right screen.
WidgetsBuild a home screen widget with WidgetKit showing data from your app.
Release preparationPrepare an archive for TestFlight: signing, version numbers, privacy manifest and screenshots.
Capstone: complete iOS appShip a complete SwiftUI app (API, persistence, sign-in, tests, accessibility) with a README, screenshots and demo video.
Background tasksRefresh data in the background with BackgroundTasks.
Swift Concurrency in depthUse task groups, cancellation and MainActor correctly in a real feature.
App Intents and ShortcutsExpose an app action to Siri and Shortcuts with App Intents.
iPad and multitaskingMake your app adapt to iPad with NavigationSplitView.
PrivacyWrite a privacy manifest and App Store privacy labels for your app.
PerformanceFix list scrolling or image memory issues found with Instruments.
App Store listingPrepare screenshots, description, keywords and review notes.
Capstone 2: app for a real userBuild an iOS app for a real user's need, test it with them through TestFlight (or on device) and document their feedback and your changes.
โ† Tools and first-week setupSubmitting tasks and earning your certificate โ†’