Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

662 bites

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

Concepts in Mobile Dev, page 2

intermediate2 min read

Hermes: The JS Engine for Faster React Native Apps

Hermes is a JavaScript engine optimized for React Native that prioritizes fast startup and low memory use. It's the default for new apps, pre-compiling JS to bytecode at build time. The footgun: don't just check a global variable; benchmark release builds.

intermediate2 min read

Swift Error Handling: Throwing, Catching, and Propagating

Swift error handling uses a dedicated channel for failures. Functions declare they can fail with throws, you handle them with do-catch, or transform them into optionals with try?. The footgun is overusing try!, which crashes your app on failure.

Kotlin Data Classes: Automatic Boilerplate for Data Holders
intermediate2 min read

Kotlin Data Classes: Automatic Boilerplate for Data Holders

A Kotlin data class automatically generates boilerplate like equals() and toString() for classes that just hold data. Use it for model objects or DTOs where value equality matters. The footgun: its copy() method is shallow, sharing mutable objects.

intermediate2 min read

Kotlin Collections: Think Transformations, Not Loops

Treat collection operations as a pipeline, not a for loop. Each function (map, filter) transforms data and passes it to the next stage, ideal for turning API data into UI models.

intermediate2 min read

The React Native Bridge: Why It's Being Replaced

Think of the React Native Bridge as an asynchronous JSON message queue between your JavaScript code and the native UI. This design is the source of its core limitation: communication delays that cause visible UI jank and prevent modern React features.

advanced2 min read

Protocols: Swift's Blueprint for Behavior

Protocols are Swift's blueprints for behavior, enabling composition over inheritance. They're used to decouple dependencies and define shared functionality like Codable. The footgun is mistaking any Protocol for some Protocol, inviting performance costs.

intermediate2 min read

Dart's Sound Null Safety: No More Null Errors

In Dart, variables can't be null unless you explicitly allow it. This flips the usual model, turning potential runtime null pointer crashes into compile-time errors you can fix immediately.

Expo Application Services (EAS): The Cloud Toolchain for React Native
intermediate2 min read

Expo Application Services (EAS): The Cloud Toolchain for React Native

Expo Application Services (EAS) is the cloud toolchain for production React Native apps. It handles complex native builds, app store submissions, and over-the-air updates. The main footgun is confusing it with the local expo CLI for development.

advanced2 min read

Automatic Reference Counting (ARC): Swift's Memory Manager

ARC is Swift's automatic memory manager for classes. It's like a landlord tracking tenants: when the last reference to an object is gone, its memory is freed. It's used everywhere in Swift, but the footgun is creating strong reference cycles.

Dart's Null-Aware Operators: Safely Handle Nulls
intermediate2 min read

Dart's Null-Aware Operators: Safely Handle Nulls

Null-aware operators let you work with potentially null values without a cascade of if (x != null) checks. Use them to access properties, provide defaults, or assign values only when a variable is null. The footgun is confusing safe ?. with unsafe !.

Kotlin Extension Functions: Add Methods Without Inheritance
advanced2 min read

Kotlin Extension Functions: Add Methods Without Inheritance

Kotlin extension functions let you add new functionality to existing classes without inheritance, as if you were adding a new method. They're perfect for creating helpers for third-party library classes or framework types like String.

advanced2 min read

async/await: Write Concurrent Code That Reads Synchronously

async/await lets you write asynchronous code that reads like a synchronous story, eliminating callback hell. It's ideal for network requests or file I/O. The footgun is thinking await blocks a thread; it only suspends the current task.

intermediate1 min read

Dart's Cascade Notation: Chain Calls on One Object

Cascade notation (..) lets you perform a sequence of operations on the same object without repeating its name. It's ideal for configuring new instances in one block.

Kotlin Scope Functions: Cleaner Code, Clearer Choices
advanced2 min read

Kotlin Scope Functions: Cleaner Code, Clearer Choices

Kotlin's scope functions (let, run, apply) create a temporary workspace for an object, avoiding repetitive variable names. Use them for object configuration or chaining calls.

advanced2 min read

Adding Native Code to Expo (The Modern 'Eject')

Adding native code to Expo no longer means 'ejecting'. You create a custom development build with your specific native modules. This is for when a library has native code not in the Expo SDK. The footgun is thinking you must abandon Expo's tools and services.

easy2 min read

Value vs. Reference Semantics in Swift

Value types are like emailing a document copy; changes don't affect the original. Reference types are like a shared Google Doc link; everyone edits the same instance. In Swift, structs are copies, while classes are shared references.

intermediate2 min read

Dart's async/await: Non-Blocking Code That Reads Synchronously

Dart's async/await makes non-blocking code read like a simple script. Use it for network requests or file I/O to keep your UI from freezing. The biggest footgun is calling an async function but forgetting to await its Future result.

Kotlin Sealed Classes: Enums for Types
advanced2 min read

Kotlin Sealed Classes: Enums for Types

A sealed class is like an enum, but for types. It defines a closed set of subclasses, letting each one carry different data. It's perfect for modeling states like Loading, Success, and Error, ensuring you handle every case at compile time.

easy1 min read

The View Component: React Native's UI Building Block

Think of View as the <div> of React Native. It’s the fundamental container for grouping and styling other components, used everywhere to structure layouts with flexbox. The footgun: Text must be in a <Text> component, not directly in a View.

The Result Type: Modeling Success and Failure
easy2 min read

The Result Type: Modeling Success and Failure

The Result type is a sealed box for an operation's outcome: it holds either a success value or a failure error. It's used in asynchronous code like network requests to create clean, explicit completion handlers. The footgun is forgetting to handle both cases.

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