johansatge / namagic

Batch renaming reloaded for Mac OS X - Built with web technologies
https://www.namagicapp.com/
MIT License
3 stars 1 forks source link

Namagic

Batch renaming reloaded for Mac OS X

About the project

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. :tada: 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.

App structure

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

Installation

:bulb: 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

Development scripts

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)

Publishing on the Mac App Store

Check the MAS submission guide for the prerequisites.