明日も楽をするために

めんどくさがりなITエンジニアが書くメモ帳

AndroidとiPhoneで使えるスライドメニューのライブラリ紹介

(・ω・)ノ みなさんお仕事お疲れ様です


ここ最近はPHPソーシャルゲームを少し離れアプリ開発(ほぼ勉強みたいなものだけど)をやってます。そこで一般的なアプリによくあるカッコイイスライドメニューを簡単に実装できるライブラリを紹介したいと思います。

SlidingMenu/Android

jfeinstein10/SlidingMenu · GitHub

まず始めにAndroidからで実装ソースがTextViewやButtonと同じようなソースでスライドメニューを実装できてしまうライブラリです。
サンプルソースから抜粋

SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setShadowDrawable(R.drawable.shadow);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.menu);

ViewDeck/iPhone

Inferis/ViewDeck · GitHub

rootViewControllerに対してメインの画面とメニュー用の画面を指定して、スライドメニューを実装するライブラリになります。個人的にタブやナビゲーションを使うときはstoryboardだと工夫が必要かも。
サンプルソースから抜粋

#import "IIViewDeckController.h"

// prepare view controllers
UIViewController* leftController = [[UIViewController alloc] init];
UIViewController* rightController = [[UIViewController alloc] init];

IIViewDeckController* deckController =  [[IIViewDeckController alloc] initWithCenterViewController:self.centerController leftViewController:leftController
                                                  rightViewController:rightController];

タイトルにもスライドメニューと書きましたがナビゲーションドロワーとも言うらしいです。Androidには公式でナビゲーションドロワーがあるのですが、こちらの方が私は好きです。

スライドメニューのライブラリは実は同じ様な物が結構あるのですが、挙動が少しずつ異なっていたりします。例えばAndroidの公式のナビゲーションドロワーはメインの画面に対して上に被るように表示されます。
※参考URL
NavigationDrawerをつかって、スライド式のメニューを実装する | Tech Booster

他にもボタンのみでメニューを開閉するものと画面を横にスライドさせてメニューを表示させる物に対応している物など色々(ボタンでしか開閉できないライブラリもあったはず・・・)

今回私が紹介したものは両方ともメニューが表示されると画面が全体的に横にずれてメニューが表示され、ボタンと横スライドでメニュー表示に対応している物を紹介させて頂きました!(○´w`○)