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 4

intermediate2 min read

Opaque Types: Hide Implementation, Not Capabilities

Opaque types (some Protocol) hide a function's concrete return type, exposing only its protocol conformance. This lets you change the implementation later (e.g., from ReverseCollection) without breaking client code that just needs some Collection.

intermediate2 min read

Dart's Lazy Iterable Methods: map() and where()

Think of map() or where() not as instant transformations, but as recipes for a new list. They're lazy, only doing work when you iterate. Use them to chain operations without creating intermediate lists.

StateFlow: A Hot Flow for UI State
intermediate2 min read

StateFlow: A Hot Flow for UI State

StateFlow is a state-holder observable that emits the current and new state updates to its collectors. Use it to expose UI state from a ViewModel to a UI. The footgun: slow collectors can miss intermediate state updates, receiving only the most recent value.

advanced2 min read

Result Builders: Declarative Swift DSLs

Result builders teach the compiler to fold expressions into one combined value, enabling declarative DSLs. SwiftUI relies on them to compose stacked views. Type errors surface on compiler-generated boilerplate instead of your original code.

intermediate2 min read

alignItems: Aligning Children on the Cross Axis

alignItems arranges children along the cross axis of a flex container. If items flow down (column), it aligns them left/right. If they flow across (row), it aligns them top/bottom. The footgun: alignSelf on a child overrides this parent property.

intermediate2 min read

Dart's Specialized Constructors: Named, Factory, and Constant

Dart constructors offer more than one way to create an object. Use named constructors for clarity (e.g., fromJSON), factory for caching or returning subtypes, and const for compile-time constant objects.

Kotlin Delegated Properties: Reusing Getter/Setter Logic
intermediate2 min read

Kotlin Delegated Properties: Reusing Getter/Setter Logic

Kotlin's delegated properties let you outsource a property's getter/setter logic. Instead of writing boilerplate, you reuse common patterns like lazy initialization (by lazy) or observing changes (by observable).

Coroutine Exception Handling: launch vs. async
advanced2 min read

Coroutine Exception Handling: launch vs. async

Coroutine builders handle exceptions differently. launch propagates them immediately, crashing if unhandled. async silently catches them, waiting for you to call await. Use a CoroutineExceptionHandler on root scopes for global logging.

intermediate2 min read

Dart: Abstract Classes & Implicit Interfaces

An abstract class is a blueprint that other classes must follow, but it can't be instantiated itself. Dart also lets any class act as an 'implicit interface,' forcing other classes to implement its public API without inheritance.

advanced2 min read

React Native Modal: Presenting Content Above Other Views

A Modal is a temporary screen takeover, presenting content above your current view. Use it for critical alerts or forms that demand user focus. The main footgun: forgetting onRequestClose disables the Android back button, trapping your user.

easy2 min read

Xcode Project: Your App's Blueprint and Toolbox

An Xcode project is a self-contained kit for your app, holding all files, assets, and build instructions. It's the central repository for source code, build settings, and dependencies. The footgun: moving files in Finder without telling Xcode breaks builds.

intermediate2 min read

Why hashCode and operator== Must Be Overridden Together

Overriding == without hashCode breaks collections like Set and Map. If two objects are equal, they MUST have the same hash code. This is vital for custom classes used as map keys or set elements.

SharedFlow: A Hot Flow for Broadcasting Events
advanced2 min read

SharedFlow: A Hot Flow for Broadcasting Events

A SharedFlow is a hot stream that broadcasts values to all subscribers, like a live TV channel. It's ideal for one-to-many events, like UI updates or notifications. The main footgun: it never completes, so collect will suspend forever.

advanced2 min read

Platform.select: Write Once, Adapt Anywhere

Platform.select is a switch statement for your UI, letting you apply styles or components for iOS and Android from one object. It's ideal for tweaking styles in StyleSheet.create or rendering different components. The footgun is forgetting a default key.

Interface Builder: Visual UI Design for iOS/macOS
easy2 min read

Interface Builder: Visual UI Design for iOS/macOS

Interface Builder is Xcode's visual editor for building UIs. You drag-and-drop components like buttons and screens, which are saved as .xib files. It's used to quickly lay out app screens without writing UI code.

intermediate2 min read

Dart's Enhanced Enums: More Than Just Constants

An enhanced enum is a class with a fixed set of instances. It lets you add fields, methods, and constructors to your enums, turning them from simple labels into powerful objects with attached data and behavior.

Kotlin's `in` and `out`: Declaration-Site Variance
advanced2 min read

Kotlin's `in` and `out`: Declaration-Site Variance

Kotlin's out and in keywords define a generic class as a producer or consumer at its declaration, avoiding Java's repetitive wildcards. Use out T for types only returned (produced) and in T for types only consumed.

advanced2 min read

React Native's Dimensions API: The Manual Approach

React Native's Dimensions API is a low-level way to get a one-time snapshot of screen or window sizes. Use it outside React components or when you need to subscribe to changes manually. The footgun is caching its value, as it won't update on rotation.

Asset Catalogs: Your App's Smart Media Library
easy2 min read

Asset Catalogs: Your App's Smart Media Library

An Asset Catalog is a smart folder for your app's visuals, automatically serving the right version (like high-res or dark mode) for the user's device. It's the standard way to manage images, icons, and colors in Xcode.

advanced2 min read

Dart Mixins: Constraining Reusable Code with `on`

A Dart mixin is like a plugin of methods for a class. The on keyword acts as a gatekeeper, ensuring the class using the mixin already has specific base features. This is used for sharing UI logic only among Widget subclasses.

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