Batch renaming reloaded for Mac OS X
- Official website
- User guide
- About the project
- App structure
- Installation
- Development scripts
- Publishing on the Mac App Store
- Changelog
- License
A few lines about the project's story...
Namagic is a Mac application developed with web technologies.
It was one of the first web-based apps to be published on the Mac App Store, in April 2015. Its first version was actively developed between February and April 2015.
When I tried to publish the app on the Mac App Store for the first time, it was rejected, because the structure of NW.js did not respect the Store's guidelines.
So, with the useful help of Alexey Stoletny, we made it work, and we wrote a Mac App Store submission guide. That was challenging - and awesome.
After a few more tries, the app got accepted. 🎉 Our work was eventually merged in NW.js core, and reused in Github's Electron. That was great!
Then, ~50 copies of Namagic were sold in the first weeks, and it was featured in a few Mac-related websites (link (in French))
After a few months, the app sunk in the Mac App Store's depths (probably because of my absence of skills in selling stuff, which is needed to maintain the app in the Trending section).
That's why today (March 2017) I have decided to give that app a second life, by open-sourcing it on Github.
Now the app is distributed under the MIT license, the source code is available for free.
However, if you want to support the project, the app can be bought on the Mac App Store.
- The application is based on NW.js
- The UI is written with HTML&CSS, and the logic uses JavaScript, with a basic MVC pattern
- The build tasks use Grunt
Here is the project structure:
app.nw
├── app.html // NW.js entrypoint
├── assets
│ ├── config.rb // SASS config file
│ ├── css // Compiled CSS (app & libs)
│ ├── fonts // Web fonts (icons)
│ ├── js
│ │ ├── libs // JS libraries (jQuery)
│ │ ├── libs.min.js // Minified libraries
│ │ ├── src
│ │ │ ├── app.js // JS entrypoint
│ │ │ ├── controllers // Controllers
│ │ │ ├── models // Models (file renaming logic, app state...)
│ │ │ ├── utils // Helpers (DOM, i18n...)
│ │ │ └── views // JS views
│ │ └── src.min.js // Minified app
│ └── sass // App styles
├── locale // i18n (JSON-based)
├── package.json
└── templates // App templates
💡 This is a development installation.
If you just want to get the built app, you can buy it here, on the Mac App Store.
Get the project:
$ git clone git@github.com:namagicapp/namagic.git
$ cd namagic
Install Grunt, if needed:
$ npm install grunt --global
Install the build dependencies:
$ npm install
Install the app dependencies:
$ cd app.nw
$ npm install
Download NW.js (tested on version 0.12.3
). The app should available here:
/Applications/nw.js
The following Grunt tasks are available:
$ grunt run # Run the app
$ grunt sass:watch # Compile SASS files on update
$ grunt js:watch # Compile JS files on update
$ grunt js:compile # Compile JS files
$ grunt js:libs # Compile JS libs, when adding or removing one
$ grunt html:compile # Compile HTML templates (no watcher for this one)
$ grunt build # Build and sign the app (to be uploaded in iTunes Connect)
Check the MAS submission guide for the prerequisites.
- Build the HTML, JS & CSS assets if needed
- Increment the build number and version in app.nw/package.json (each upload on Application Loader should have an unique build number)
- Build the app by running
grunt build
(the resulting signed app and package are stored in the.mas
directory) - Load the
.mas/Namagic.pkg
file in Apple's Application Loader - In iTunes Connect, create and submit a new app version, based on the uploaded build