Skip to content

GenericJam/mob_new

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mob_new

Project generator for the Mob mobile framework. Installs a global mix mob.new command.

Hex.pm

Installation

mob_new is a Mix archive — install it globally, not as a project dependency:

mix archive.install hex mob_new

Usage

mix mob.new my_app
cd my_app
mix mob.install    # first-run setup: download OTP runtime, generate icons, write mob.exs

Options

Option Description
--no-install Skip mix deps.get after generation
--dest DIR Create the project in DIR (default: current directory)
--local Use path: deps pointing to local mob/mob_dev repos — see below

Local development mode (--local)

This flag is for Mob framework contributors and library authors testing unpublished changes. It is not intended for app developers — use the standard mix mob.new my_app instead.

If you are working on Mob itself and want to test your changes end-to-end before publishing to Hex, pass --local to generate a project that depends on your local checkouts instead of the published packages:

mix mob.new my_app --local

This generates mix.exs with path: deps:

{:mob,     path: "/path/to/mob"},
{:mob_dev, path: "/path/to/mob_dev", only: :dev, runtime: false}

It also pre-fills mob.exs with your actual local paths so mix mob.install skips the path configuration prompts and proceeds straight to OTP download and icon generation.

Path resolution (in order):

  1. MOB_DIR / MOB_DEV_DIR environment variables
  2. ./mob / ./mob_dev in the current directory (e.g. running from ~/code)
  3. ../mob / ../mob_dev relative to the current directory
# If mob and mob_dev live alongside each other in ~/code:
cd ~/code
mix mob.new my_app --local   # auto-detects ~/code/mob and ~/code/mob_dev

# Or set explicitly from anywhere:
MOB_DIR=~/code/mob MOB_DEV_DIR=~/code/mob_dev mix mob.new my_app --local

What gets generated

my_app/
├── mix.exs
├── lib/
│   └── my_app/
│       ├── app.ex           # Mob.App entry point
│       └── home_screen.ex   # starter screen
├── android/
│   ├── build.gradle
│   └── app/
│       └── src/main/
│           ├── AndroidManifest.xml
│           └── java/com/mob/my_app/MainActivity.java
└── ios/
    ├── beam_main.m
    └── Info.plist

Next steps after generation

First deploy (builds the native app and installs it):

mix mob.deploy --native

Day-to-day (hot-pushes changed BEAMs, no native rebuild):

mix mob.deploy        # push + restart
mix mob.watch         # auto-push on file save
mix mob.connect       # open IEx connected to the running device node

Documentation

Full guide at hexdocs.pm/mob, including Getting Started, screen lifecycle, components, navigation, and live debugging.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors