読者です 読者をやめる 読者になる 読者になる

paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

HTML・CSS不要!JavaScriptだけでWebアプリの開発を実現するオンラインエディタ「MagiXJS」の使い方を解説

f:id:paiza:20170215120815j:plain
どうも、まさとらん(@0310lan)です。

今回は、簡単なコードでインタラクティブなWebアプリやゲームなどを作れる「オンラインコードエディタ」のご紹介です!

HTMLやCSSを書く必要がなく、さらにJavaScriptを簡単・安全にプログラミングできる「CoffeeScript」で記述できる完全無料のツールです。

MagiXJS

f:id:paiza:20170215121110j:plain
簡単に扱えるように設計されているので、Web開発を勉強している初心者の方や、初めてWebアプリを作ろうと考えている人にもオススメですよ!

■「MagiXJS」とは?

まずは、「MagiXJS」の基本的な使い方も含めて、どのようなサービスなのかを見ていきましょう!


サイトにアクセスして、そのまま下方向へスクロールするか、画面上のアイコンをクリックします。
f:id:paiza:20170215121916j:plain


すると、Webアプリを開発できる専用の「コードエディタ」が表示されます!
f:id:paiza:20170215121928j:plain
左画面でプログラミングを行い、その結果が右画面に表示されるようになっています。

コードは「CoffeeScript」を使ってプログラミングをするようになっており、HTMLやCSSを書かなくてもいいように、さまざまなAPIが提供されているのが特徴です。(ちなみに、普通のJavaScriptも使えます…)


コードエディタに関しては、シンタックスハイライト」や「コード補完」などの便利な機能が標準搭載されています。
f:id:paiza:20170215121955j:plain


コンソール画面も必要に応じて表示でき、コードはリアルタイム実行されるようになっているので便利です。
f:id:paiza:20170215122004j:plain


さらに、プログラミングしながら効率よくドキュメントを確認できるように、右画面に目的別のリファレンス資料を表示することも可能です!
f:id:paiza:20170215122016j:plain


開発を助けてくれる多彩な機能が提供されているのですが、それぞれの使用方法がコード付きで詳しく解説されているので安心です。
f:id:paiza:20170215122026j:plain


MagiXJS」は、自分の開発環境で利用できるように「npm」コマンドから簡単にインストールすることも出来ます!
f:id:paiza:20170215122035j:plain
ローカル環境にインストールすれば、コードの保存や公開も自由に出来るようになるので便利でしょう。

また、「npmコマンド」を使ったインストールが面倒であれば、「MHTML」形式などでWebページを丸ごとアーカイブして保存する方法でも良いと思います。

■「写真ギャラリー」アプリを作ってみよう!

MagiXJS」の概要を把握したところで、実際に簡易的なサンプルデモを作りながら、もう少し詳しくご紹介しようと思います。


今回は、簡単に作れるサンプルとして「写真ギャラリー」を作ってみましょう。
f:id:paiza:20170215122059j:plain
素材となる「写真」については、高品質なフリー画像を無償で提供している「Unsplash」のサービスと連携することで表示していきます。


実際の「動き」としてはこんな感じになります!
f:id:paiza:20170215122117g:plain
マウスを写真に重ねると、カラーを濃くしてサイズアップもする効果を取り入れてみました。

簡単なサンプルですが、HTMLやCSSを使わずにCoffeeScriptだけで構築できる特徴は掴めると思います。


それでは早速プログラミングを始めましょう!

まずは、エディタ内のコードをすべて削除して「空っぽ」の状態にしておきます。
f:id:paiza:20170215122231j:plain


そして、これから作るWebアプリの「ページ」を作るには、このようなコードを書きます。

# 新規ページを1つ作る
App.page = new Page


    # ページの背景色を設定
    backgroundColor: '#aabbff'


    # 縦方向にスクロールできるように設定
    scrollVertical: yes

「new Page」でインスタンスを作るのはJavaScriptそのままですが、オプションのカラーやスクロールの設定に関してはCSSのように記述できるので、初心者でも分かりやすいのではないでしょうか。


あと、今回の「写真ギャラリー」はグリッド状に並べるカタチにしていますが、これはHTMLの「ulタグ」のような感覚で使える「List」機能を使っています。

そこで、次に「List」を使えるようにプログラミングしていきましょう!

# リスト要素を作成
myList = new List


    y: 100   # リスト全体のY座標を設定


    width: 800   # リスト全体の幅を設定


    length: 40   # リスト内のアイテム数を設定


    horizontal: yes   # アイテムを水平方向に並べる




# リスト要素を中央に配置
myList.centerX()


こちらも、先ほど作成した「ページ(Page)」と同じような感覚でプログラミングできるのが分かりますね。

オプションの設定で、リスト内に40個並ぶアイテムを作るようにしたので、あとはどのようなアイテムを配置するかを指定するだけです。


そこで、40個のアイテムを1つずつ指定していくのは大変なので、リストに用意されている「each()」関数を使って一気に設定してみましょう!

# each()関数を使って40個のアイテムを設定
myList.each (item, index) ->
    if not item


        # アイテムを生成
        item = new ListItem


            # アイテムの幅・高さを設定
            width: 180
            height: 180


            # アイテム同士の隙間を設定
            margin: 10


            # 透明度の設定
            opacity: 0.8


            # 角丸の設定
            borderRadius: 10


            # アイテムの背景色を白色に設定
            backgroundColor: 'white'




        return item

このように「each()」関数を使うと、「List」のオプションで設定した40個分のループを回してくれるので非常に便利です。

また、これまでと同じく「オプション」の指定はCSSのように記述するだけなので、設定項目をドキュメントで確認しながら簡単にプログラミングできるのが魅力的だと思います。


ここまでのわずかなコードだけで、「写真ギャラリー」の骨組みは完成しているはず!
f:id:paiza:20170215122356j:plain
あとは、ちょっとした「インタラクション」と「写真」の表示ができるようにブラッシュアップしていきましょう!

■最後の仕上げを組み立てよう!

それでは、「Unsplash」のサービスを使って、写真素材を組み込んでいきましょう。


「Unsplash」は無償で高品質な写真をダウンロードできるサービスなのですが、実は「URL」から好きなサイズの写真を利用できる仕組みを提供しています。

http://unsplash.it/【縦サイズ】/【横サイズ】?image=【写真番号】

このような「URL」になっているので、利用したい写真サイズを指定して数字の番号を記述するだけで簡単に写真素材として利用できるわけです。


そこで、今回の写真ギャラリーのアイテムは「180 × 180」のサイズに設定しているので、変数「url」に以下のような感じで記述しましょう。

url = 'http://unsplash.it/180/180?image='

これで「180 × 180」のサイズに最適化された写真素材を取得できるようになります。


あとは、URLの末尾に【写真番号】を指定するだけなので、先ほどアイテムを40個生成するコードを書きましたが、そこへ「image」オプションを追記します。

myList.each (item, index) ->
    if not item
        item = new ListItem
        ・
        ・
        ・




        #「image」オプションに「Unsplash」のURLと写真番号を設定
        image: url+index*12
        


    return item

【写真番号】は、普通に「1, 2, 3・・・」と連番でもいいのですが、類似の写真が多いので適当な間隔を空けて数値を入れるために「index」に12を掛けています。


ここまで記述すると、見事に「写真」が表示されてギャラリーっぽくなったと思います!
f:id:paiza:20170215122511j:plain
ついでに、マウスが写真と重なった時の「インタラクション」も作っていきましょう。


「アイテム要素」の中にマウスが入った時は「mouseIn()」で、逆にアイテムの外へマウスが出た時は「mouseOut()」という関数が用意されているので、これを使って組み立ててみましょう!

# マウスがアイテム要素内に入った時
mouseIn: ->


    this.opacity = 1   # アイテム要素の透明度を設定
    this.scale = 1.1   # アイテム要素のサイズを設定




# マウスがアイテム要素の外に出た時
mouseOut: ->


    this.opacity = 0.8
    this.scale = 1


このように簡単なコードを記述するだけで、立派な「インタラクション」の完成です!
f:id:paiza:20170215122540j:plain
あとは、アニメーションをスムーズにするために、アイテム要素を生成する箇所へ「transition: yes」と記述しておくとさらにクオリティが上がるでしょう。


今回作成したサンプルデモの全ソースコードは、以下のリンクからチェックできますので、ぜひコピペしてみなさんも試してみてください!

サンプルデモのソースコード|GitHub


また、今回は紹介できていませんが、「MagiXJS」を使うと音声認識」「ストレージ」「レスポンシブ対応」「マルチスレッド」「Web通知」「ルーティング」などの機能を組み込んだWebアプリも簡単に構築できるようになっていますよ!


サービスの概要をサクッと理解できる公式動画も公開されているので、合わせて掲載しておきます!

JavaScript講座も公開中!動画でプログラミングが学べるレッスン

paizaは、プログラミング未経験者・初心者向け学習サービス「paizaラーニングを、新サービスとして独立オープンいたしました。

特に今回記事の中で使用しているJavaScriptの講座も好評公開中です。ぜひごらんください!

↓詳しくはこちら
paiza.jp

■まとめ

今回は、JavaScriptCoffeeScript)だけでWebアプリを構築できるサービスを駆け足でご紹介しましたが、ドキュメントを見ると分かるようにとても多彩な機能を簡単に扱えるように工夫されているのが特徴的です。


最初は少し戸惑うかもしれませんが、リファレンスがしっかり作られているので、1時間くらい触っているだけですぐにユニークなWebアプリを作れるようになるでしょう。

ぜひ、みなさんも「MagiXJS」を使ってオリジナルのプロジェクトを開発してみてはいかがでしょうか。

<参考>




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいという方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
paiza.jp
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編