All Projects → karad → Lein_template_descjop

karad / Lein_template_descjop

A Leiningen template(Clojure/ClojureScript Project) for Web based desktop application with Electron (atom-shell).

Programming Languages

clojure
4091 projects
clojurescript
191 projects

Projects that are alternatives of or similar to Lein template descjop

nw-calculator
A crafting calculator for the New World game
Stars: ✭ 16 (-95.94%)
Mutual labels:  reagent, re-frame, leiningen
roll
RPG dice roller with both Rust CLI and ClojureScript Web interfaces
Stars: ✭ 14 (-96.45%)
Mutual labels:  reagent, re-frame
breaking-point
BREAKING-POINT lets you quickly define and subscribe to screen (i.e. window) breakpoints in your re-frame application
Stars: ✭ 36 (-90.86%)
Mutual labels:  reagent, re-frame
tailwind-hiccup
tailwindcss + hiccup = 👍👍
Stars: ✭ 34 (-91.37%)
Mutual labels:  reagent, re-frame
re-frame-realword-example-app
Exemplary real world application built with Clojurescript and re-frame
Stars: ✭ 16 (-95.94%)
Mutual labels:  reagent, re-frame
rn-shadow-steroid
React Native with shadow-cljs on steroids
Stars: ✭ 57 (-85.53%)
Mutual labels:  reagent, re-frame
re-pressed
re-pressed is a clojurescript library that handles keyboard events for re-frame applications.
Stars: ✭ 150 (-61.93%)
Mutual labels:  reagent, re-frame
Gorilla Notebook
A clojure/clojurescript notebook application/-library based on Gorilla-REPL
Stars: ✭ 73 (-81.47%)
Mutual labels:  reagent, re-frame
re-frame-http-fx-alpha
A ClojureScript client library for HTTP requests. Provides a re-frame "effect handler" keyed :http
Stars: ✭ 37 (-90.61%)
Mutual labels:  reagent, re-frame
notebook
Web based Clojure notebook application/-library.
Stars: ✭ 96 (-75.63%)
Mutual labels:  reagent, re-frame
re-frame-semantic-ui-react-github-widget
Using semantic-ui-react with re-frame - sample project
Stars: ✭ 21 (-94.67%)
Mutual labels:  reagent, re-frame
Kee Frame
re-frame with batteries included
Stars: ✭ 289 (-26.65%)
Mutual labels:  reagent, re-frame
Reagent Figwheel
Leiningen template for Reagent applications in Clojurescript with Figwheel. Optionally includes secretary, cljs.test, garden, less, cider, devcards, cljs-devtools, re-risk
Stars: ✭ 161 (-59.14%)
Mutual labels:  leiningen, reagent
compound
A micro structure for reframe data
Stars: ✭ 116 (-70.56%)
Mutual labels:  reagent, re-frame
Ventas
Clojure ecommerce platform
Stars: ✭ 114 (-71.07%)
Mutual labels:  reagent, re-frame
learn-re-frame-course-files
🎦 Learn re-frame course files for building Cheffy app
Stars: ✭ 51 (-87.06%)
Mutual labels:  reagent, re-frame
Tincture
Frontend development toolkit for ClojureScript
Stars: ✭ 24 (-93.91%)
Mutual labels:  reagent, re-frame
Re Pollsive
Re-pollsive is a clojurescript library that handles polling events for re-frame applications
Stars: ✭ 27 (-93.15%)
Mutual labels:  reagent, re-frame
re-alm
An Elm Architecture experiment in ClojureScript
Stars: ✭ 24 (-93.91%)
Mutual labels:  reagent, re-frame
Ltfinderbuttons
My Finder buttons collection for macOS.
Stars: ✭ 269 (-31.73%)
Mutual labels:  atom, osx

logo descjop

lein-template-descjop

A Leiningen template for Web based desktop application with Electron(atom-shell) and others. (now Electron(atom-shell) based only. will build nw.js based later...)

Website : descjop.org/

Clojars Project

Requirements

  • leiningen 2.6.x +
  • node v6.x +
  • grunt v0.1.13 +

important : not support leiningen 2.5.x

(If not already installed grunt.)

$ npm install -g grunt-cli

Help

You can display help how to use descjop.

$ lein new descjop help

and you can use alias in project directory.

$ lein descjop-help

display latest version

You can display latest version.

$ lein new descjop version

New project from leiningen template

Minimum project

$ lein new descjop YOUR_APP_NAME
$ cd YOUR_APP_NAME

Om based project

$ lein new descjop YOUR_APP_NAME +om
$ cd YOUR_APP_NAME

reagent based project

$ lein new descjop YOUR_APP_NAME +reagent
$ cd YOUR_APP_NAME

Project Directory

see your app dir. looks like

.
+-- Gruntfile.js
+-- README.md
+-- app
|   +-- dev // deveropment mode dir
|   |   +-- index.html // entry html file
|   |   +-- js
|   |   |   +-- externs_front.js
|   |   |   +-- externs.js
|   |   |   +-- main.js
|   |   +-- package.json // for Desktop app
|   +-- prod // production mode dir
|       +-- index.html // entry html file
|       +-- js
|       |   +-- externs_front.js
|       |   +-- externs.js
|       |   +-- main.js
|       +-- package.json // for Desktop app
+-- package.json // for Compile
+-- project.clj // compile settings desktop app
+-- resources
+-- src
|   +-- NAMESPACE
|       +-- core.cljs // ClojureScript for Electron in here
+-- src_front
|   +--NAMESPACE_front
|      +-- core.cljs // Frontend clojureScript in here
+-- src_front_profile
    +--NAMESPACE_front
       +-- dev
       |   +-- conf.cljs
       |   +-- init.cljs
       +-- prod
           +-- conf.cljs
           +-- init.cljs

Usage

step 1

run descjop-init (windows user should use descjop-init-win) alias below.

OSX/Linux user

$ lein descjop-init
 ...
 
Running "download-electron" task
 
Done, without errors.

Windows user

$ lein descjop-init-win
 ...
 
Running "download-electron" task
 
Done, without errors.

step 2

you have to change src/PROJECT_NAME/core.cljs about :companyName and submitURL.

(defn -main []
  (.start crash-reporter (clj->js {:companyName "Your Company Name"
                                   :submitURL   "http://example.com/"}))
  ...

step 3

and run extern alias descjop-externs,

$ lein descjop-externs

run cljsbuild lein descjop-once.

$ lein descjop-once

Compiling ClojureScript.
Compiling "app/js/cljsbuild-main.js" from ["src"]...
Successfully compiled "app/js/cljsbuild-main.js" in 10.812 seconds.
...
Successfully compiled "app/dev/js/front.js" in 10.588 seconds.
...
Successfully compiled "app/prod/js/cljsbuild-main.js" in 19.333 seconds.
...
Successfully compiled "app/prod/js/front.js" in 29.94 seconds.

step 4

You can run Desktop application.

development mode

development mode use figwheel. run alias descjop-figwheel. before run application. Open other terminal window.

$ lein descjop-figwheel

and you can run Electron(Atom-Shell) app.

On Windows:

$ .\electron\electron.exe app/dev

On Linux:

$ ./electron/electron app/dev

On OS X:

$ ./electron/Electron.app/Contents/MacOS/Electron app/dev

production mode

you can run Electron(Atom-Shell) app.

On Windows:

$ .\electron\electron.exe app/prod

On Linux:

$ ./electron/electron app/prod

On OS X:

$ ./electron/Electron.app/Contents/MacOS/Electron app/prod

Package App

(If not already installed Electron-packager.)

$ npm install -g electron-packager

run command

for OSX

$ lein descjop-uberapp-osx

for OSX app store

$ descjop-uberapp-app-store

for windows 32bit app

$ descjop-uberapp-win32

for windows 64bit app

$ descjop-uberapp-win64

for linux

$ descjop-uberapp-linux

How to Upgrade to new Electron version

You can change Electron version in Gruntfile.js.

module.exports = function(grunt) {

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        "download-electron": {
            version: "1.3.2", // change Electron version 1.3.2 -> 1.3.3
            outputDir: "./electron", 
            rebuild: true
        }
    });

    grunt.loadNpmTasks('grunt-download-electron');

};

and re-run

for linux / mac

$ lein descjop-init

for windows

$ lein descjop-init-win

Aliases

you can use aliases in project directory.

$ lein descjop-version       # descjop version
$ lein descjop-help          # descjop help
$ lein descjop-init          # init project
$ lein descjop-init-win      # init project for windows user
$ lein descjop-externs       # output externs for develop and production
$ lein descjop-externs-dev   # output externs for develop
$ lein descjop-externs-prod  # output externs for production
$ lein descjop-figwheel      # start figwheel
$ lein descjop-once          # build JavaScript for develop and production
$ lein descjop-once-dev      # build JavaScript for develop
$ lein descjop-once-prod     # build JavaScript for production

Desktop Application pic

Milestones

  • descjop cli command
  • add CSS
  • test suite

Change log

0.7.2 (2017-05-10)

  • update electron -> 1.6.6
  • fix package build alias

0.7.1 (2017-02-21)

  • update Readme.txt for Upgrading Electron version.

0.7.0 (2017-02-14)

  • update electron -> 1.6.0
  • update clojurescript 1.7.228 -> 1.9.473
  • some :dependencies update
  • add electron packager command
    • descjop-uberapp-osx
    • descjop-uberapp-app-store
    • descjop-uberapp-linux
    • descjop-uberapp-win64
    • descjop-uberapp-win32

0.6.6 (2016-08-11)

  • update electron -> 1.3.3

0.6.5 (2016-07-17)

  • add descjop command version alias lein descjop-version
  • update electron -> 1.2.7

0.6.4 (2016-07-07)

  • update electron -> 1.2.5

0.6.3 (2016-04-11)

  • fixed namespace problem.

0.6.2 (2016-04-10)

Changes:

  • update clojurescript 1.7.122 -> 1.7.228
  • update electron -> 0.37.5
  • add descjop command help alias lein descjop-help
  • add descjop command init alias lein descjop-init
  • add descjop command externs alias lein descjop-externs lein descjop-externs-dev lein descjop-externs-prod
  • add descjop command compile alias lein descjop-once lein descjop-once-dev lein descjop-once-prod
  • add descjop command figwheel alias lein descjop-figwheel
  • support development and production mode.
  • re-design directories.
  • some bug fix

0.5.4 (2015-12-29)

Changes:

  • update document
  • update electron -> 0.36.1
  • update lein-cljsbuild -> 1.1.2
  • update lein-externs -> 0.1.5

0.5.3 (2015-12-19)

Changes:

  • update electron -> 0.36.1
  • change deprecated method .loadUrl() to .loadURL()
  • add downloadDir Gruntfile settings. if you want to download electron on current project directory.
  • delete atom-shell in app__index.html
  • change .gitignore exclude electron/*
  • change crash-reporter.start() in resources/leiningen/new/descjop/src__core.cljs that require companyName and submitURL

0.5.2 (2015-11-19)

Changes:

  • update electron -> 0.35.0

0.5.1 (2015-10-22)

Changes:

  • update electron -> 0.34.0
  • update clojurescript -> 1.7.145

0.5.0 (2015-10-09)

Changes:

  • om also support figwheel. great job @dvcrn!
  • update electron -> 0.33.6

0.4.0 (2015-09-29)

Changes:

  • reagent support (with figwheel). good job @mopemope!
  • update electron -> 0.33.3

0.3.2 (2015-09-19)

Changes:

  • add help command
  • update electron -> 0.33.0

0.3.1 (2015-09-10)

Changes:

  • update electron -> 0.32.2

0.3.0 (2015-09-05)

Changes:

  • add +om option. Om based template support.

0.2.1 (2015-09-03)

Changes:

  • update clojurescript -> 1.7.48
  • update electron -> 0.31.2
  • update grunt-download-electron -> 2.1.2

0.2.0 (2015-08-03)

Changes:

  • support :optimization :none
  • update clojure -> 1.7.0
  • update clojurescript -> 1.7.28
  • update electron -> 0.30.2

0.1.8 (2015-06-22)

Changes:

  • update Electron version 0.28.1 to 0.28.2

0.1.7 (2015-06-16)

Changes:

  • update Electron version 0.27.3 to 0.28.1

0.1.6 (2015-06-08)

Changes:

  • update Electron version 0.26.1 to 0.27.3

0.1.5 (2015-05-22)

Changes:

  • update Electron version 0.26.0 to 0.26.1

0.1.4 (2015-05-16)

Changes:

  • update Electron version 0.25.3 to 0.26.0

0.1.3 (2015-05-08)

Changes:

  • update Electron version 0.24.0 to 0.25.3
  • update grunt-download-electron to 2.1.1

0.1.2 (2015-04-22)

Bugfixes:

  • change calling how to index.html path (#2, @karad)

0.1.1 (2015-04-20)

Bugfixes:

  • change grunt task from atom-shell to electron (#1, @karad)

License

Copyright © Kazuhiro Hara (Greative LLC http://greative.jp/) {:mail [email protected] :twitter https://twitter.com/kara_d}

Distributed under the MIT License http://opensource.org/licenses/MIT .

Thanks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].