Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

345 bites

Test yourself: Top 30 intermediate Mobile Dev concepts questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Intermediate concepts in Mobile Dev, page 9

intermediate2 min read

Hive: A Fast, Local Key-Value Store for Dart

Hive is a lightweight key-value database for Dart, acting like a persistent, super-fast Map. Use it to store simple data like user settings or cache API responses locally.

@HiltViewModel: Simplified ViewModel Injection
intermediate2 min read

@HiltViewModel: Simplified ViewModel Injection

@HiltViewModel automates creating ViewModels with dependencies. Instead of writing custom factories, just annotate the ViewModel and its constructor. It's the standard for injecting dependencies like repositories into ViewModels in a Hilt-powered Android app.

intermediate2 min read

Why-Did-You-Render: Find Unnecessary React Re-renders

The why-did-you-render library is a detective for your React app, finding components that re-render unnecessarily. Use it in development to debug performance by spotting when new object or function references break memoization.

intermediate2 min read

flutter_secure_storage: Secure Key-Value Pairs

flutter_secure_storage is your go-to for saving sensitive data like API tokens. Think of it as an encrypted, cross-platform key-value store that uses native Keychain on iOS and strong ciphers on Android. The footgun: it's slower and meant only for secrets.

intermediate2 min read

Drift Schema Migrations: Evolving Your Database Safely

Think of schema migrations as a recipe for upgrading your app's database from an old version to a new one. You'll use them whenever you add a table or column in Drift. The footgun is forgetting to bump schemaVersion; your migration won't run.

intermediate2 min read

Fabric Renderer: React's Native UI Interpreter

Fabric is React Native's interpreter, translating abstract components into concrete native views for iOS and Android. It's the core renderer in the New Architecture, enabling more synchronous UI updates. The footgun is thinking it's a library you import.

intermediate2 min read

Test-Driven Development: Write the Test First

TDD flips the script: write a failing test before the feature code, forcing a testable design. It's ideal for new Swift components with clear requirements, ensuring every line of code serves a purpose.

intermediate2 min read

AlarmManager: Scheduling Precise Future Tasks in Android

AlarmManager is Android's system-wide alarm clock for your app, letting you run code at a specific time, even if your app is closed. Use it for time-sensitive tasks like calendar notifications. The footgun: alarms are wiped on reboot and must be re-registered.

Mocking: Faking Dependencies in Unit Tests
intermediate2 min read

Mocking: Faking Dependencies in Unit Tests

A mock is a stunt double for a real object in your unit tests, letting you control its behavior. Use it to fake dependencies like network clients for fast, predictable tests. The footgun: over-mocking can create tests that pass but miss real integration bugs.

XCUITest: Automating Your App's User Interface
intermediate1 min read

XCUITest: Automating Your App's User Interface

XCUITest is like a robot user for your app, tapping buttons and verifying what's on screen. It automates testing of critical flows like login or checkout to prevent regressions.

intermediate2 min read

React Native Testing Library: Test User Behavior, Not Code

React Native Testing Library tests components from a user's perspective. Instead of checking internal code, you find elements by visible text and simulate presses, ensuring tests survive refactors. The footgun is overusing implementation details like testID.

XCUIElementQuery: The Blueprint for Finding UI Elements
intermediate2 min read

XCUIElementQuery: The Blueprint for Finding UI Elements

An XCUIElementQuery is a recipe for finding UI, not the element itself. It describes a search that runs only when you interact with the result. Use it in XCUITest to locate views for automated tests. The footgun: thinking a query finds an element on creation.

intermediate2 min read

AnimationController: The Conductor of Your Animation

An AnimationController is the conductor for your animation's timing. It produces values from 0.0 to 1.0 over a duration, letting you play, reverse, or stop animations. Use it to drive widgets like SlideTransition.

React Native & Jest: Automatic Native Module Mocking
intermediate2 min read

React Native & Jest: Automatic Native Module Mocking

Jest tests for React Native run in Node, not on a device, so native code won't work. The react-native preset automatically mocks native modules, letting you test components without a real device environment.

Testing Async Code with XCTestExpectation
intermediate2 min read

Testing Async Code with XCTestExpectation

XCTestExpectation is a stopwatch for your tests, pausing them to wait for asynchronous work like a network call to finish. Use it for testing code with completion handlers. The footgun is forgetting to fulfill() the expectation, causing a timeout failure.

intermediate2 min read

Flutter's Tween: The Recipe for Animation

A Tween is a recipe for animation, not the animation itself. It maps a 0.0-1.0 progress value to a concrete value, like a color or position. Use it with an AnimationController to smoothly transition a widget's properties.

The `act()` Utility: Syncing Tests with React's Updates
intermediate2 min read

The `act()` Utility: Syncing Tests with React's Updates

The act() utility ensures your tests wait for React to finish updating the DOM before you make assertions. Use it to wrap component renders and state updates. The footgun is forgetting to use await with an async function, which can lead to flaky tests.

Xcode Code Coverage: Measuring Test Effectiveness
intermediate2 min read

Xcode Code Coverage: Measuring Test Effectiveness

Code coverage isn't a grade, but a map of untested code. Use it in Xcode to find gaps in your logic before shipping. The footgun: high coverage doesn't mean your tests are good, just that the lines were executed, potentially missing key assertions.

intermediate2 min read

AnimatedBuilder: Isolate Animation Rebuilds for Performance

Flutter's AnimatedBuilder rebuilds only the widgets that change during an animation, not the entire screen. Use it to embed a moving part within a larger static widget, like a spinning icon on a button, to maximize performance.

intermediate2 min read

Testing Custom Hooks with `renderHook`

renderHook isolates a hook for testing by running it inside a tiny, dedicated component. Use it to verify a hook's logic and side effects without rendering a full UI. Footgun: Forgetting to wrap state updates in act() can cause flaky, unpredictable tests.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles