Structuring Cross‑Platform Apps with Appcelerator Alloy MVC: A Practical Guide to Reusable Widgets
Learn how Appcelerator Alloy’s MVC structure and widget system let you build maintainable, cross‑platform mobile apps without sacrificing performance.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how Appcelerator Alloy’s MVC structure and widget system let you build maintainable, cross‑platform mobile apps without sacrificing performance.
Decide when to use Appcelerator Alloy vs classic Titanium. Compare constraints, trade‑offs, and see a concrete ListView example that auto‑updates from SQLite. This guide helps choose the right approach for mobile UI development.
Goal: ensure that after restoring a backup, any cached data does not cause stale application state. Constraint/uncertainty: The Ti.Filesystem backup/restore APIs do not specify whether the application cache should be cleared automatically; current behavior leaves cache intact, and the documentation does not define a hook or permission for automatic cache cle
A Titanium native module exposes methods through a JavaScript Proxy object that represents the underlying native instance. When JavaScript invokes a native method asynchronously and supplies a callback, the native side may retain that callback for later invocation. If the JavaScript garbage collector reclaims the Proxy object while the native operation is st
The goal is to configure Appcelerator Titanium applications to present alerts that are visible to the user but do not generate any audible sound, vibration, or badge notification on Android devices, while still allowing the alert to be dismissed or acted upon. This approach relies on Ti.Android.createNotificationChannel with importance set to MIN (or LOW) an
Goal: Keep a low‑traffic Appcelerator Titanium app on the free ArrowDB (ACS) developer sandbox to avoid unexpected billing while still using SDK 8.0‑9.x. Constraints/uncertainty: The free sandbox provides up to 1 M API calls per month, but the switch to the paid plan occurs automatically and silently when the quota is exceeded, with no CLI or build‑log notif
Goal: receive background push payloads in an Appcelerator Titanium app on iOS 15+ without showing a system notification banner, while still waking the app to process the payload. Constraint: Ti.App.addEventListener('notification', ...) handles remote notifications, but the SDK does not expose a dedicated silent-push flag. Setting the APNs alert field to an e
Goal: Determine whether to enable certificate pinning with a backup pin and forced‑update mechanism or to rely on the platform trust store together with App Transport Security (ATS) exceptions for TLS validation in Ti.Network.HTTPClient. Constraint: Pinning protects against compromised CAs but causes hard failures when the server certificate rotates without
The goal is to guarantee that a series of DDL statements applied through Ti.Database either fully succeed or leave the local SQLite database unchanged. Titanium supplies only low‑level SQLite access; there is no built‑in migration runner, and the explicit transaction API (BEGIN/COMMIT/ROLLBACK) varies across SDK releases, so developers often rely on a Ti.App