create-mobile-app 0.0.0-stage โ†’ 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DevMinds Technologies <contact@devminds.in>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,491 @@
1
- # Temporary Holding Version
1
+ # ๐Ÿš€ create-mobile-app
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ > **Create a production-ready React Native + TypeScript mobile application in one command.**
4
+ > Powered by **Expo SDK 57 (Default)**, modern **Node.js 20+**, dynamic responsive scaling via **[`react-native-dynamic-responsive`](https://www.npmjs.com/package/react-native-dynamic-responsive)**, enterprise modular architecture, and zero-headache setup.
5
+
6
+ <p align="center">
7
+ <a href="https://www.npmjs.com/package/create-mobile-app">
8
+ <img src="https://img.shields.io/npm/v/create-mobile-app.svg?style=flat-square&color=cb3837&label=npm" alt="npm version" />
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/create-mobile-app">
11
+ <img src="https://img.shields.io/npm/dw/create-mobile-app.svg?style=flat-square&color=44cc11&label=downloads" alt="downloads" />
12
+ </a>
13
+ <a href="https://github.com/officialdevforge/create-mobile-app/blob/main/LICENSE">
14
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="license" />
15
+ </a>
16
+ <a href="https://www.typescriptlang.org/">
17
+ <img src="https://img.shields.io/badge/typescript-ready-3178c6.svg?style=flat-square&logo=typescript&logoColor=white" alt="typescript" />
18
+ </a>
19
+ <a href="https://expo.dev/">
20
+ <img src="https://img.shields.io/badge/expo-compatible-8547c6.svg?style=flat-square&logo=expo&logoColor=white" alt="expo" />
21
+ </a>
22
+ <a href="https://reactnative.dev/">
23
+ <img src="https://img.shields.io/badge/react--native-compatible-2088ff.svg?style=flat-square&logo=react&logoColor=white" alt="react-native" />
24
+ </a>
25
+ <a href="https://nodejs.org/">
26
+ <img src="https://img.shields.io/badge/node-%3E%3D20.0.0-339933.svg?style=flat-square&logo=node.js&logoColor=white" alt="node" />
27
+ </a>
28
+ <a href="https://devminds.in">
29
+ <img src="https://img.shields.io/badge/Maintained%20by-DevMinds%20Technologies-6366f1?style=flat-square" alt="DevMinds Technologies" />
30
+ </a>
31
+ </p>
32
+
33
+ ---
34
+
35
+ ## ๐Ÿ“‘ Table of Contents
36
+
37
+ - [Why create-mobile-app?](#-why-create-mobile-app)
38
+ - [Ecosystem & Best Packages Used](#-ecosystem--best-packages-used)
39
+ - [Quick Start](#-quick-start)
40
+ - [Interactive Prompts](#-interactive-prompts)
41
+ - [CLI Options & Flags](#-cli-options--flags)
42
+ - [Enterprise Architecture & Folder Structure](#-enterprise-architecture--folder-structure)
43
+ - [Code Examples & Architecture Guides](#-code-examples--architecture-guides)
44
+ - [1. Dynamic Responsive UI & Layouts](#1-dynamic-responsive-ui--layouts)
45
+ - [2. Light, Dark & System Theme Engine](#2-light-dark--system-theme-engine)
46
+ - [3. Production UI Component Library](#3-production-ui-component-library)
47
+ - [4. Typed Navigation (Stack, 5 Tabs & Drawer)](#4-typed-navigation-stack-5-tabs--drawer)
48
+ - [5. Centralized API Client & TanStack Query v5](#5-centralized-api-client--tanstack-query-v5)
49
+ - [6. Authentication & Guest Mode](#6-authentication--guest-mode)
50
+ - [Developer & Contribution Guide](#-developer--contribution-guide)
51
+ - [Troubleshooting & FAQ](#-troubleshooting--faq)
52
+ - [Credits & Author](#-credits--author)
53
+ - [License](#-license)
54
+
55
+ ---
56
+
57
+ ## ๐Ÿ’ก Why `create-mobile-app`?
58
+
59
+ Starting a production-grade React Native app usually takes days of repetitive boilerplate work: configuring navigation stacks, setting up dark/light themes, solving tablet/foldable responsive layouts, creating reusable inputs and buttons, wiring API interceptors, setting up caching with TanStack React Query, and fixing native SDK dependency mismatch warnings.
60
+
61
+ `create-mobile-app` eliminates all this setup friction:
62
+ - โšก **Zero-to-Running in 30 Seconds**: Run one command and start building features immediately.
63
+ - ๐Ÿ“ **First-Class Responsive Engine**: Built-in support for phones, landscape, tablets, and foldable screens with `react-native-dynamic-responsive`.
64
+ - ๐Ÿ›ก๏ธ **Zero Version-Mismatch Doctor Warnings**: Downloads the official template for your target Expo SDK, aligning `expo`, `react`, and `react-native` versions perfectly.
65
+ - ๐Ÿ”’ **Zero Obfuscation or Hidden Binaries**: Fully inspectable, MIT-licensed open-source TypeScript code conforming to GitHub and GitLab security standards.
66
+
67
+ ---
68
+
69
+ ## ๐Ÿ“ฆ Ecosystem & Best Packages Used
70
+
71
+ Every generated application integrates industry-standard, battle-tested packages:
72
+
73
+ | Purpose | Package | Why It's the Best Choice |
74
+ | :--- | :--- | :--- |
75
+ | **Responsive Design** | [`react-native-dynamic-responsive`](https://www.npmjs.com/package/react-native-dynamic-responsive) | Zero-runtime dependency, reactive to orientation, foldables & tablets with `useStyles`. |
76
+ | **State & API Cache** | [`@tanstack/react-query`](https://tanstack.com/query/latest) v5 | Industry standard for async state, pagination, caching, and retry logic. |
77
+ | **Navigation** | [`@react-navigation/native`](https://reactnavigation.org/) v7 | Declarative, typed routing with Native Stack, 5 Bottom Tabs, and Slide-out Drawer. |
78
+ | **Persistent Storage** | [`@react-native-async-storage/async-storage`](https://react-native-async-storage.github.io/async-storage/) | Reliable key-value persistence for tokens, preferences, and offline caching. |
79
+ | **Mobile Runtime** | [`expo`](https://expo.dev/) (SDK 57 default) | Modern developer experience, EAS build support, and web/iOS/Android universal runtimes. |
80
+ | **Language & Tooling** | `TypeScript` 5+ & `Node.js` 20+ | Strict type safety, auto-completion, and error-free build execution. |
81
+
82
+ ---
83
+
84
+ ## ๐Ÿš€ Quick Start
85
+
86
+ Generate your app in any directory with `npx`:
87
+
88
+ ```bash
89
+ npx create-mobile-app my-app
90
+ ```
91
+
92
+ ### โšก Instant Setup with Production Defaults (`--yes`)
93
+ Skip questions and immediately scaffold an enterprise app with Expo SDK 57:
94
+
95
+ ```bash
96
+ npx create-mobile-app my-app --yes
97
+ ```
98
+
99
+ ### ๐ŸŽฏ Target Specific Expo SDK Version
100
+ Supports any modern Expo SDK:
101
+
102
+ ```bash
103
+ # Expo SDK 57 (Recommended Default)
104
+ npx create-mobile-app my-app --sdk 57
105
+
106
+ # Latest Expo SDK 58
107
+ npx create-mobile-app my-app --sdk 58
108
+
109
+ # Earlier versions (e.g., 54, 52 LTS)
110
+ npx create-mobile-app my-app --sdk 54
111
+ ```
112
+
113
+ ### ๐Ÿ“ฆ Specify Preferred Package Manager
114
+ ```bash
115
+ # npm, yarn, pnpm, or bun
116
+ npx create-mobile-app my-app --pm pnpm
117
+ ```
118
+
119
+ ---
120
+
121
+ ## ๐Ÿ“‹ Interactive Prompts
122
+
123
+ When run without flags, `create-mobile-app` guides you through an intuitive, interactive setup:
124
+
125
+ ```text
126
+ ? Project name: my-app
127
+ ? Select Platform: Expo (Recommended) / React Native CLI
128
+ ? Select Expo SDK Version: SDK 57 (Recommended)
129
+ ? Include dynamic responsive system (react-native-dynamic-responsive)? Yes
130
+ ? Include Theme system (Light/Dark/System)? Yes
131
+ ? Include Reusable UI Component library (CText, CBox, CButton, CInput, CDropdown)? Yes
132
+ ? Include Navigation (Stack, 5 Tabs, Drawer)? Yes
133
+ ? Include Centralized API Client (Axios/Fetch with interceptors)? Yes
134
+ ? Include TanStack React Query v5? Yes
135
+ ? Include Domain Service architecture (Auth, User, Home, Profile)? Yes
136
+ ? Include Authentication Context & Session State? Yes
137
+ ? Enable Guest Mode support? Yes
138
+ ? Include Async Storage layer? Yes
139
+ ? Include Husky, Prettier, and Lint-Staged pre-commit checks? Yes
140
+ ? Include Demo Screen examples? Yes
141
+ ? Select Package Manager: auto (detects npm, pnpm, yarn, bun)
142
+ ```
143
+
144
+ ---
145
+
146
+ ## ๐ŸŽ›๏ธ CLI Options & Flags
147
+
148
+ | Flag | Type | Default | Description |
149
+ | :--- | :---: | :---: | :--- |
150
+ | `-y, --yes` | `boolean` | `false` | Generate immediately using production defaults |
151
+ | `--platform <type>` | `string` | `expo` | Target platform (`expo` or `cli`) |
152
+ | `--sdk <version>` | `string` | `~57.0.0` | Target Expo SDK version (`57`, `58`, `54`, `52`) |
153
+ | `--responsive / --no-responsive` | `boolean` | `true` | Include `react-native-dynamic-responsive` system |
154
+ | `--theme / --no-theme` | `boolean` | `true` | Include Light / Dark / System theme engine |
155
+ | `--components / --no-components` | `boolean` | `true` | Include UI library (`CText`, `CBox`, `CButton`, etc.) |
156
+ | `--navigation / --no-navigation` | `boolean` | `true` | Include Navigation Architecture |
157
+ | `--tabs / --no-tabs` | `boolean` | `true` | Include 5 Bottom Tabs Navigation |
158
+ | `--drawer / --no-drawer` | `boolean` | `true` | Include Drawer Navigation |
159
+ | `--api / --no-api` | `boolean` | `true` | Include API Client Architecture |
160
+ | `--query / --no-query` | `boolean` | `true` | Include TanStack React Query v5 layer |
161
+ | `--service / --no-service` | `boolean` | `true` | Include Domain Service architecture |
162
+ | `--auth / --no-auth` | `boolean` | `true` | Include Auth Context & Session Management |
163
+ | `--guest / --no-guest` | `boolean` | `true` | Include Guest Mode support |
164
+ | `--storage / --no-storage` | `boolean` | `true` | Include AsyncStorage key-value abstraction |
165
+ | `--husky / --no-husky` | `boolean` | `true` | Include Husky, Prettier & Lint-Staged git hooks |
166
+ | `--examples / --no-examples` | `boolean` | `true` | Include sample screens (Home, Profile, Search, etc.) |
167
+ | `--pm <manager>` | `string` | `auto` | Package manager: `npm`, `yarn`, `pnpm`, or `bun` |
168
+ | `-V, --version` | `boolean` | - | Display current version |
169
+ | `-h, --help` | `boolean` | - | Display help documentation |
170
+
171
+ ---
172
+
173
+ ## ๐Ÿ“ Enterprise Architecture & Folder Structure
174
+
175
+ Every generated project uses a clean modular structure designed for enterprise scale:
176
+
177
+ ```text
178
+ my-app/
179
+ โ”œโ”€โ”€ assets/ # App Icon, Splash Screen, Adaptive Icon, Favicon
180
+ โ”œโ”€โ”€ app.json # Expo application config & splash branding
181
+ โ”œโ”€โ”€ App.tsx # Root provider composition (Theme, Auth, Query, Navigation)
182
+ โ”œโ”€โ”€ babel.config.js # Path alias configuration (@/ -> src/)
183
+ โ”œโ”€โ”€ tsconfig.json # Strict TypeScript config with root aliases
184
+ โ””โ”€โ”€ src/
185
+ โ”œโ”€โ”€ api/ # Centralized HTTP client, interceptors & error handlers
186
+ โ”‚ โ”œโ”€โ”€ client.ts # Generic client with auth headers and normalized errors
187
+ โ”‚ โ””โ”€โ”€ queryKeys.ts # Type-safe TanStack Query key factory
188
+ โ”œโ”€โ”€ auth/ # Authentication & Session Management
189
+ โ”‚ โ”œโ”€โ”€ AuthContext.tsx # Auth provider, token storage, login/logout, guest mode
190
+ โ”‚ โ””โ”€โ”€ useAuth.ts # Hook to access user session and guest flags
191
+ โ”œโ”€โ”€ components/ # Reusable UI component library
192
+ โ”‚ โ”œโ”€โ”€ common/ # CText, CBox, CInput, CButton, CDropdown
193
+ โ”‚ โ””โ”€โ”€ alert/ # Global AlertProvider and useAlert hook
194
+ โ”œโ”€โ”€ config/ # Environment variables & constants
195
+ โ”œโ”€โ”€ constant/ # Spacing, Font families, and Layout metrics
196
+ โ”œโ”€โ”€ hooks/ # Custom React hooks (useDebounce, useNetworkStatus)
197
+ โ”œโ”€โ”€ navigations/ # Typed navigation architecture
198
+ โ”‚ โ”œโ”€โ”€ RootNavigator.tsx # Auth vs Main app conditional routing
199
+ โ”‚ โ”œโ”€โ”€ BottomTabNavigator.tsx # 5 Configured Bottom Tabs with icons & badges
200
+ โ”‚ โ””โ”€โ”€ DrawerNavigator.tsx # Slide-out Drawer navigation
201
+ โ”œโ”€โ”€ screen/ # Screen views
202
+ โ”‚ โ”œโ”€โ”€ HomeScreen.tsx # Home feed screen
203
+ โ”‚ โ”œโ”€โ”€ SearchScreen.tsx # Search & filter view
204
+ โ”‚ โ”œโ”€โ”€ NotificationScreen.tsx # Notifications list
205
+ โ”‚ โ”œโ”€โ”€ ProfileScreen.tsx # User profile & theme settings
206
+ โ”‚ โ”œโ”€โ”€ SettingsScreen.tsx # App settings & preferences
207
+ โ”‚ โ””โ”€โ”€ LoginScreen.tsx # Sign In & Guest Mode screen
208
+ โ”œโ”€โ”€ service/ # Domain API services
209
+ โ”‚ โ”œโ”€โ”€ authService.ts # Login, Register, Refresh Token
210
+ โ”‚ โ”œโ”€โ”€ userService.ts # Profile and user queries
211
+ โ”‚ โ””โ”€โ”€ homeService.ts # Dashboard & feed queries
212
+ โ”œโ”€โ”€ storage/ # AsyncStorage persistent key-value abstraction layer
213
+ โ”œโ”€โ”€ theme/ # Light / Dark / System theme engine & color tokens
214
+ โ”œโ”€โ”€ types/ # Shared TypeScript models and navigation contracts
215
+ โ””โ”€โ”€ utils/ # Utilities (Date, Mobile Number, Currency, Validation)
216
+ ```
217
+
218
+ ---
219
+
220
+ ## ๐Ÿ’ป Code Examples & Architecture Guides
221
+
222
+ ### 1. Dynamic Responsive UI & Layouts
223
+
224
+ Using [`react-native-dynamic-responsive`](https://www.npmjs.com/package/react-native-dynamic-responsive), styles dynamically adapt to screen size changes, rotation, tablets, and foldables:
225
+
226
+ ```tsx
227
+ import React from 'react';
228
+ import { View } from 'react-native';
229
+ import { useStyles, useResponsive } from 'react-native-dynamic-responsive';
230
+ import { CText } from '@/components/common/CText';
231
+
232
+ export const AdaptiveCard = () => {
233
+ const { isTablet, isLandscape } = useResponsive();
234
+ const styles = useStyles(createStyles);
235
+
236
+ return (
237
+ <View style={styles.card}>
238
+ <CText variant="header">
239
+ {isTablet ? 'Tablet Viewport' : 'Mobile Viewport'}
240
+ </CText>
241
+ <CText variant="caption">
242
+ Orientation: {isLandscape ? 'Landscape' : 'Portrait'}
243
+ </CText>
244
+ </View>
245
+ );
246
+ };
247
+
248
+ const createStyles = (r: any) => ({
249
+ card: {
250
+ width: r.isTablet ? r.wp(45) : r.wp(90),
251
+ padding: r.ms(16),
252
+ borderRadius: r.s(12),
253
+ backgroundColor: '#ffffff',
254
+ },
255
+ });
256
+ ```
257
+
258
+ ---
259
+
260
+ ### 2. Light, Dark & System Theme Engine
261
+
262
+ Synchronize styles with system preference or manually toggle themes:
263
+
264
+ ```tsx
265
+ import React from 'react';
266
+ import { View } from 'react-native';
267
+ import { useStyles } from 'react-native-dynamic-responsive';
268
+ import { useTheme } from '@/theme';
269
+ import { CText } from '@/components/common/CText';
270
+ import { CButton } from '@/components/common/CButton';
271
+
272
+ export const ThemeSwitcherCard = () => {
273
+ const { theme, isDark, toggleTheme } = useTheme();
274
+ const styles = useStyles(createStyles, theme);
275
+
276
+ return (
277
+ <View style={styles.container}>
278
+ <CText variant="title">Current Theme: {isDark ? 'Dark' : 'Light'}</CText>
279
+ <CButton
280
+ title="Toggle Theme"
281
+ variant="primary"
282
+ onPress={toggleTheme}
283
+ />
284
+ </View>
285
+ );
286
+ };
287
+
288
+ const createStyles = (r: any, theme: any) => ({
289
+ container: {
290
+ backgroundColor: theme.colors.card,
291
+ padding: r.ms(16),
292
+ borderRadius: r.s(12),
293
+ },
294
+ });
295
+ ```
296
+
297
+ ---
298
+
299
+ ### 3. Production UI Component Library
300
+
301
+ Pre-configured components ready for production use:
302
+
303
+ ```tsx
304
+ import React, { useState } from 'react';
305
+ import { CBox } from '@/components/common/CBox';
306
+ import { CText } from '@/components/common/CText';
307
+ import { CInput } from '@/components/common/CInput';
308
+ import { CButton } from '@/components/common/CButton';
309
+ import { useAlert } from '@/components/alert/AlertProvider';
310
+
311
+ export const RegistrationForm = () => {
312
+ const [email, setEmail] = useState('');
313
+ const { showAlert } = useAlert();
314
+
315
+ const handleSave = () => {
316
+ showAlert({
317
+ title: 'Success',
318
+ message: 'User profile registered successfully!',
319
+ type: 'success',
320
+ });
321
+ };
322
+
323
+ return (
324
+ <CBox padding={16} borderRadius={12} backgroundColor="#F8FAFC">
325
+ <CText variant="header">Create Account</CText>
326
+ <CInput
327
+ label="Email Address"
328
+ placeholder="user@example.com"
329
+ value={email}
330
+ onChangeText={setEmail}
331
+ />
332
+ <CButton title="Submit" variant="primary" onPress={handleSave} />
333
+ </CBox>
334
+ );
335
+ };
336
+ ```
337
+
338
+ ---
339
+
340
+ ### 4. Typed Navigation (Stack, 5 Tabs & Drawer)
341
+
342
+ Pre-wired navigation setup with strictly typed parameters:
343
+
344
+ ```tsx
345
+ import { NativeStackScreenProps } from '@react-navigation/native-stack';
346
+ import { RootStackParamList } from '@/types/navigation';
347
+
348
+ type Props = NativeStackScreenProps<RootStackParamList, 'Profile'>;
349
+
350
+ export const ProfileScreen = ({ navigation, route }: Props) => {
351
+ return (
352
+ <CBox flex={1} padding={16}>
353
+ <CText variant="title">User Profile</CText>
354
+ <CButton
355
+ title="Open Settings"
356
+ onPress={() => navigation.navigate('Settings')}
357
+ />
358
+ </CBox>
359
+ );
360
+ };
361
+ ```
362
+
363
+ ---
364
+
365
+ ### 5. Centralized API Client & TanStack Query v5
366
+
367
+ Fetch data cleanly with automatic caching, normalized error handling, and type safety:
368
+
369
+ ```tsx
370
+ import { useQuery } from '@tanstack/react-query';
371
+ import { queryKeys } from '@/api/queryKeys';
372
+ import { homeService } from '@/service/homeService';
373
+ import { CText } from '@/components/common/CText';
374
+ import { CBox } from '@/components/common/CBox';
375
+
376
+ export const DashboardFeed = () => {
377
+ const { data, isLoading, error } = useQuery({
378
+ queryKey: queryKeys.home.dashboard(),
379
+ queryFn: () => homeService.getDashboardData(),
380
+ });
381
+
382
+ if (isLoading) return <CText>Loading feed...</CText>;
383
+ if (error) return <CText color="red">Failed to load feed</CText>;
384
+
385
+ return (
386
+ <CBox>
387
+ <CText variant="subtitle">{data?.title}</CText>
388
+ </CBox>
389
+ );
390
+ };
391
+ ```
392
+
393
+ ---
394
+
395
+ ### 6. Authentication & Guest Mode
396
+
397
+ Authenticate users, store tokens safely in AsyncStorage, and support guest access:
398
+
399
+ ```tsx
400
+ import React from 'react';
401
+ import { useAuth } from '@/auth/useAuth';
402
+ import { CBox } from '@/components/common/CBox';
403
+ import { CText } from '@/components/common/CText';
404
+ import { CButton } from '@/components/common/CButton';
405
+
406
+ export const SessionStatus = () => {
407
+ const { user, isGuest, isAuthenticated, loginAsGuest, logout } = useAuth();
408
+
409
+ return (
410
+ <CBox padding={16}>
411
+ {isAuthenticated ? (
412
+ <>
413
+ <CText>{isGuest ? 'Logged in as Guest' : `Welcome, ${user?.email}`}</CText>
414
+ <CButton title="Logout" variant="outline" onPress={logout} />
415
+ </>
416
+ ) : (
417
+ <CButton title="Continue as Guest" variant="secondary" onPress={loginAsGuest} />
418
+ )}
419
+ </CBox>
420
+ );
421
+ };
422
+ ```
423
+
424
+ ---
425
+
426
+ ## ๐Ÿ› ๏ธ Developer & Contribution Guide
427
+
428
+ ### Local Development Setup
429
+
430
+ To contribute to or modify `create-mobile-app`:
431
+
432
+ 1. **Clone the repository**:
433
+ ```bash
434
+ git clone https://github.com/officialdevforge/create-mobile-app.git
435
+ cd create-mobile-app
436
+ ```
437
+
438
+ 2. **Install dependencies**:
439
+ ```bash
440
+ npm install
441
+ ```
442
+
443
+ 3. **Build the CLI**:
444
+ ```bash
445
+ npm run build
446
+ ```
447
+
448
+ 4. **Run the Vitest test suite**:
449
+ ```bash
450
+ npm test
451
+ ```
452
+
453
+ 5. **Test the CLI locally**:
454
+ ```bash
455
+ npm start my-test-app
456
+ ```
457
+
458
+ ---
459
+
460
+ ## ๐Ÿ’ก Troubleshooting & FAQ
461
+
462
+ #### Q: How does Expo dependency alignment work?
463
+ `create-mobile-app` downloads the official Expo blank template matching your target SDK (default SDK 57). It keeps the native package versions (`expo`, `react`, `react-native`, `expo-status-bar`) completely intact, guaranteeing **zero version mismatch warnings** when running `npx expo-doctor`.
464
+
465
+ #### Q: Which Node.js version is required?
466
+ Node.js **`>=20.0.0`** is required. We recommend the latest LTS release of Node 20 or Node 22.
467
+
468
+ #### Q: Can I use this with React Native CLI instead of Expo?
469
+ Yes! Pass `--platform cli` to scaffold a React Native Community CLI foundation:
470
+ ```bash
471
+ npx create-mobile-app my-app --platform cli
472
+ ```
473
+
474
+ ---
475
+
476
+ ## ๐Ÿ‘จโ€๐Ÿ’ป Credits & Author
477
+
478
+ Developed and maintained with โค๏ธ by **[DevMinds Technologies](https://devminds.in)**.
479
+
480
+ - ๐Ÿข **Organization**: **DevMinds Technologies** *(WEB ยท MOBILE ยท CLOUD ยท DESIGN)*
481
+ - ๐ŸŒ **Website**: [devminds.in](https://devminds.in)
482
+ - ๐Ÿ’ผ **Portfolio**: [devminds.in/portfolio](https://devminds.in/portfolio)
483
+ - ๐Ÿ‘จโ€๐Ÿ’ป **Lead Architect**: **[Dharmendra (Dev) kumar](https://www.linkedin.com/in/dharmendra-appdeveloper)** *(Mobile & Full Stack Architect)*
484
+ - โœ‰๏ธ **Inquiries & Custom Software**: [contact@devminds.in](mailto:contact@devminds.in)
485
+
486
+ ---
487
+
488
+ ## ๐Ÿ“„ License
489
+
490
+ This project is licensed under the **MIT License** &mdash; see the [LICENSE](LICENSE) file for details.
491
+ Copyright (c) 2026 **DevMinds Technologies** & **Dharmendra (Dev) kumar**.
Binary file
Binary file
Binary file
Binary file
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare function runCli(): Promise<void>;
2
+
3
+ export { runCli };