SlideShare a Scribd company logo
1 of 31
Download to read offline
NTER-Mediator:
エンドユーザーが保守可能な
Webアプリを開発できるフレームワーク
June 12, 2014
2014年度第1回SE勉強会
フリーランスエンジニア
電気通信大学大学院
新居雅行 - nii@msyk.net
1
14年6月13日金曜日
自己紹介
新居雅行(にいまさゆき)- nii@msyk.net
• 2008年よりフリーエンジニアとしてシステム開発を行う
• FileMaker,iOS,Webでの業務系システムが主要なフィールド
2011年よりトップエスイー第6期生
• 1年半コースで,2012年9月に修了
• 修了制作は, 先生の指導でパターンに関するテーマ
2013年より電気通信大学大学院へ進学
• 独自に開発したWebアプリケーションフレームワークに基づき,「シ
ステム開発型」での博士取得を目指している
2
14年6月13日金曜日
Agenda
論文採録実績(ソフトウェア論文)
• 新居 雅行, 顕志,石川 冬樹;エンドユーザーによる保守作業を可
能にするWebアプリケーションフレームワーク;コンピュータソフト
ウェア,pp.60-74,Vol. 31 No. 1 (2014)
開発フレームワークINTER-Mediatorの概要
フレームワークの動作上での特徴
INTER-Mediatorでの開発と保守
INTER-Mediatorの利用実績と今後の開発計画
3
14年6月13日金曜日
開発フレームワーク
INTER-Mediatorの概要
背景とモチベーション
問題を解決する手法
開発において作成が必要な2つのファイル
4
14年6月13日金曜日
開発フレームワークの背景
Webアプリケーション
• Webブラウザをクライアントとして,Webサーバでの情報共有を中心
としたアプリケーション
• 一般には,動的なWebページを生成する
• 業務系のWebアプリケーションは,一般にはリレーショナルデータベ
ースを用いて情報の保存を行う
Webフレームワーク
• Webアプリケーションを開発するためのソフトウエア
• ライブラリ的なものから,継承可能なクラス群を持つものまで
• 本来のフレームワークの意味を超えて,アプリケーション開発のサポ
ートが可能なソフトウエアを「フレームワーク」と呼ぶ
5
14年6月13日金曜日
モチベーション
Webアプリケーションによるシステム開発の現状
• サーバサイドのMVCフレームワークが発展し,大規模なシステム構築
が可能となる
• 手続き的なプログラミングをチームで行う仕組みが発達
システム開発現場での問題点
• 実装からメンテナンスまで,手続き的なプログラミングが必要なた
め,開発の多くの部分を開発会社に依頼する必要が発生する
• 予算規模の少ない組織では,十分なメンテナンスが行われない可能制
があり,システム化のメリットを享受できない
問題点の克服
• エンドユーザが開発やメンテナンスに参画することで,予算規模の少
ない組織でのシステム開発やメンテナンスを推進できないか?
6
14年6月13日金曜日
開発フレームワークの方向性
宣言的な記述でWebアプリケーションを構築できる
• HTMLへの属性への記述の追加と,データベースアクセス定義で,ア
プリケーションを構築できる
プログラマ以外も開発やメンテナンスに参画できる
• エンドユーザや,Webデザイナも開発に参画できる
• カットオフまでは,分析や実装でソフトウエアエンジニアでなければ
できないことがある
• 一方,メンテナンスタスクでは,一定範囲であれば,宣言的な記述で
修正することが可能である
モダンなWebアプリケーション
• AJAXをベースにした使い勝手の良いアプリケーションを可能にする
7
14年6月13日金曜日
定義ファイル
実体はPHPの連想配列
• 使用するテーブルや検索条件,リレーションシップ定義などを記述
• Webアプリケーションによるエディタを開発済み
<?php
require_once('../../INTER-Mediator.php');
IM_Entry(
array(
array(
'name' => 'postalcode',
'records' => 10,
'paging' => true,
),
),
null,
array('db-class' => 'PDO'),
false
);
コンテキスト
name: postalcode
records: 10
paging: true
以後は以下
のように記
述する
定義ファイルエディタ
8
14年6月13日金曜日
ページファイル
合成するページの
HTMLによるテン
プレート
<!DOCTYPE html>
<html>
<head>
<title>INTER-Mediator - Sample</title>
<script type="text/javascript" src="search_def.php">
</script>
</head>
<body onload="INTERMediator.construct()">
<div id="IM_NAVIGATOR"></div>
<table border="1" id="resultTable">
<thead>...</thead>
<tbody>
<tr>
<td><div data-im="postalcode@f3"></div></td>
<td><div data-im="postalcode@f7"></div></td>
<td><div data-im="postalcode@f8"></div></td>
<td><div data-im="postalcode@f9"></div></td>
</tr>
</tbody>
</table>
</body>
</html>
1.定義ファイ
ルの読み込み
4.ページ合成
の開始処理
2.要素にフィールド
とのバインドを指定
3.ページネーシ
ョンの生成場所
合成したページ
9
14年6月13日金曜日
フレームワークの
動作上での特徴
要素とフィールドとのバインディング
ユーザの編集結果を更新する仕組み
複数のレコードを表示するための繰り返し
その他の特徴的な動作
10
14年6月13日金曜日
バインディングの実装
11
データ
ベース
<input type=“text” data-im=“invoice@issueddt” />
data-im属性を元にデータベースアクセス
クエリー結果をタグにマージ
ページファイルでの記述
<input type=“text” data-im=“invoice@issueddt”
value=“2014-5-22 14:32” />
2014-5-22 14:32発行日:
更新のための情報を記憶
発行日:
レコード:invoiceid=4332
フィールド:issueddt
初期値:2014-5-22 14:32
クエリー結果
{ invoiceid: 4332,
customerid: 3456,
issueddt: 2014-5-22 14:32,
total: 45230 }
invoiceテーブルにアクセス
name: invoice
key: invoiceid
定義ファイルでの記述
作成するファイルへの記述内容
14年6月13日金曜日
編集結果からデータベースへの更新
12
ユーザがテキストフィールドを修正
2014-5-21 16:59発行日:
初期値:
2014-5-22 14:32 ?
データベース側で変更があるかをチェック
変更がなければデータベースを更新
現在の値:
2014-5-21 16:59
データ
ベース
コントローラーで
更新を受け付ける
更新処理を呼び出
せるHTMLの構成
一般的なサーバ稼働のフレームワークの場合
データ修
正が可能
なモデル
にする
リクエストに応じて
モデルにアクセスし
てフィールドを変更
できるようにする
ページ上にあ
る同一データ
の別フィールド
表示の更新
INTER-Mediatorの場合
同一データと
バインドした
他の要素に自
動的に反映
様々な機能
をクラス内
に実装する
必要がある
要素へのバ
インディン
グの設定の
みで機能
14年6月13日金曜日
繰り返しの実装(1)
<table>
<tbody> ←エンクロージャー
<tr> ←リピーター
<td>
<span data-im=“invoice@issueddt”>
</span>
</td>
</tr>
</tbody>
</table>
data-im属性の存在からバインディン
グが必要と判断
上位ノードにさかのぼり、リピーター
とエンクロージャーを識別する
<table>
<tbody> ←エンクロージャー
<tr> ←リピーター
<td>
<span data-im=“invoice@issueddt”>
</span>
</td>
</tr>
</tbody>
</table>
data-im属性を元にデータベースアク
セス
ページファイルの内容
クエリー結果
[{ invoiceid: 4332, ssueddt: 2014-5-22 14:32, total: 45230 },
{ invoiceid: 4333, ssueddt: 2014-5-22 14:56, total: 2301 },
….]
複数レコード
が得られた
13
14年6月13日金曜日
繰り返しの実装(2)
クエリー結果
[{ invoiceid: 4332, ssueddt: 2014-5-22 14:32, total: 45230 },
{ invoiceid: 4333, ssueddt: 2014-5-22 14:56, total: 2301 },
….]
リピーターを
削除して別途
保存しておく
<tr><td><span data-im=“invoice@issueddt”></span></td></tr>
<table>
<tbody>
</tbody>
</table>
リピーターを複製し、1レコード分をマージ
マージしたリピーターをエンクロージャーの下位ノードとして追加
<tr><td><span data-im=“invoice@issueddt”>2014-5-22 14:32</span></td></tr>
<table>
<tbody>
<tr><td><span data-im=“invoice@issueddt”>2014-5-22 14:32</span></td></tr>
</tbody>
</table>
レコードの数
だけ繰り返す
<table>
<tbody>
<tr><td><span data-im=“invoice@issueddt”>2014-5-22 14:32</span></td></tr>
<tr><td><span data-im=“invoice@issueddt”>2014-5-22 14:32</span></td></tr>
</tbody>
</table>
14
14年6月13日金曜日
その他の特徴的な動作
リレーションシップに基づく関連レコードの展開
データベースアクセス時の動作定義
• 検索条件や並べ替えの適用
• フィールド単位での書式設定と逆変換
要素やその属性へのアクセス
• 要素の内容だけでなく,属性へのバインディングも可能
計算プロパティの利用
ローカルコンテキスト
• ページローカルに利用できるキーバリューストア
認証・認可のサポート
セキュリティへの配慮,CSP対応
15
14年6月13日金曜日
INTER-Mediatorでの
開発と保守
INTER-Mediatorを使った場合の開発プロセス
保守作業の分類
INTER-Mediatorでの保守作業の実際
16
14年6月13日金曜日
INTER-Mediatorを使った場合の開発プロセス
業務分析 設計
UXデザイン
スキーマ定義
定義ファイル
の作成
要求定義
ページファイ
ルの作成
プログラム
開発
テスト メンテナンス
開発プロセス
INTER-Mediatorと通常の
開発では大きな違いはない
宣言的な記述が中心
通常の開発では手続的
プログラミングが主体
17
14年6月13日金曜日
メンテナンス作業に見る他のフレームワークとの違い
想定するメンテナンス作業
• 伝票には税込み合計が表示されている.
• 税抜き合計金額も並記したくなった.
一般的なサーバベースで稼働するフレームワーク
• MVCの各要素を手続き的なプログラミングを行って修正
INTER-Mediatorの場合
• HTMLや設定ファイルでの宣言的な記述の変更で可能
18
14年6月13日金曜日
19
一般的なサーバベースで稼働するフレームワークによるWebアプリケーション
INTER-Mediatorで開発したWebアプリケーション
クライアント
ページファイル
HTML 定義ファイル
(PHPでの項目リスト)
データ
ベース
フレームワーク
テンプレート
(View)
PHP
コントローラ
PHP
モデル
PHP
クライアント
INTER-Mediator
データ
ベース
INTER-Mediator
‘field’ => ‘beforeTax’,
‘expression’ => ‘Round(total / 1.08)’
<span data-im=“invoice@befereTax”>
</span>
1.モデルに
プロパテ
ィを定義
2.計算式の
設定
3.計算結果
のビュー
への伝達
4.ビューへ
の要素の
追加
5.計算結果
を要素に
表示
1.モデルに
プロパテ
ィを定義
2.計算式の
設定
3.計算結果
のビュー
への伝達
4.ビューへ
の要素の
追加
5.計算結果
を要素に
表示
手続き的なプログ
ラミングが必要
宣言的な記述の
追加だけで可能
メンテナンス作業の比較
14年6月13日金曜日
メンテナンス作業の分類
概要 宣言的な記述でできる作業例 宣言的な記述だけではできない例
1 ページ要素
•文字の色や罫線などスタイルを変更
•要素を表示する順序を変更
•フィールドを新たに追加表示
•計算結果を表示するフィールドを追加
•現実にはスキーマ変更も伴うよう
な改変
•UI要素以外に応答させるなど,イ
ベントへの特別な対応
2
データベース
要求
•レコード取得のための検索や並べ替え
条件の変更
•要求の動的な変更
•副問い合わせを含む要求
3
単一フィールド
応答
•小数以下の桁数を2桁から3桁に増加
•一定の文字列を前後に追加する
•未サポートの変換処理(単位変換処
理など)
4
クライアント
スクリプト
•特別な処理を行うボタンの設置
•未サポートのJavaScriptライブラ
リの利用
5
データベース
応答
•データベースだけで実現できない
ような集計処理
6 スキーマ変更
•テーブルやフィールド,ビューを
新たに作成する
* 新規ページ追加
•スクラッチから作成する
•既存ページを複製後,1∼6の改変をする
•スクラッチから作成する
•既存ページを複製後,1∼6の改変をする
20
14年6月13日金曜日
開発と保守に関するまとめ
開発に関して
• 分析とスキーマ定義のように,エンジニアリングの知識が必要な作業
があり,全工程をエンドユーザーが行うのは難しい
保守に関して
• 一定の範囲内の保守作業は宣言的な記述の修正や追加で可能
• INTER-Mediatorは宣言的な記述で開発可能な点を重視しており,エ
ンドユーザーによる保守の可能性を高める
21
14年6月13日金曜日
INTER-Mediatorの利用実績
22
14年6月13日金曜日
利用実績について
想定した利用状況
• 中小企業や組織内で使う,情報共有を目的とした利用
実際の利用状況
• ホスティングサービス両者向けFileMakerデータベース変換
• サーバアプリケーションとして稼働するレジスタシステム
• PHPのフレームワーク,CakePHP,CodeIgniter,Yiiとの統合を行
いビュー構築部分にINTER-Mediatorを利用
• 看護師の勤務割当表の作成システム
• オンデマンド印刷の受注および進行管理
• ISO認証事業における会員向け情報提供システム
• 海外出張申請承認システム など
23
14年6月13日金曜日
ふち無しはがき印刷
適用業務
年賀状や書中見舞い等のオ
ンデマンド印刷.官製はが
きへのふち無し印刷対応
目的
顧客の発注それぞれに対す
る進 管理を行う.内部の
処理はFileMakerで行う一
方,顧客はWebアクセスが
要求される
採用理由
レコード単位のアクセス権
を含む認証・認可の仕組み
があり,ファイルのアップ
ロードやダウンロードに関
してもサポートしている
24
14年6月13日金曜日
ふち無しはがき印刷
適用業務
年賀状や書中見舞い等のオ
ンデマンド印刷.官製はが
きへのふち無し印刷対応
目的
顧客の発注それぞれに対す
る進 管理を行う.内部の
処理はFileMakerで行う一
方,顧客はWebアクセスが
要求される
採用理由
レコード単位のアクセス権
を含む認証・認可の仕組み
があり,ファイルのアップ
ロードやダウンロードに関
してもサポートしている
24
メンテナンスの例:
領収書の印刷ページの追加
このページを複製してHTMLの調整をした
14年6月13日金曜日
FMPress(開発:株式会社エミック)
適用業務
FileMakerデータベースを
変換してWeb共有
目的
FileMaker Serverの標準機
能とは別に,ホスティング
サービス会社が自社顧客向
けに提供
採用理由
制約の多い標準のWeb公開
機能ではなく,カスタマイ
ズを視野に入れた現実的な
Web公開手法として顧客に
提供
25
14年6月13日金曜日
他のフレームワークとの統合
PHP系のフレームワークとの統合実績がある
• INTER-MediatorのサーバサイドはPHPで記述されているため
• コントローラとモデルを利用し,ビュー構築部分にINTER-Mediatorを統
合している
CakePHP
• IMCakeとしてレポジトリで公開中
• FMPressの開発者が手がけている
CodeIgniter
• 開発者がブログに掲載
Yii
• 開発者がブログに掲載
• Webアプリとして使えるオープンソースの簡易レジスタシステムの
「naha_regi」を開発する基盤となっている 26
14年6月13日金曜日
今後の展望とまとめ
27
14年6月13日金曜日
関連研究
宣言的な記述でのWebアプリケーション開発
• XFormsDB:XForms,XPath等W3C標準で構築
• Visual Studio LightSwitch (Microsoft)
フロントエンド向けJavaScriptフレームワーク
• AngularJS (Google),Knockout (Microsoft) が代表的
サービス
• Kintone (Cybouz),UnitBase (Just System)
• Salesforce.com
28
14年6月13日金曜日
今後の研究計画
INTER-Mediatorの開発に関して
• 宣言的な記述で開発可能な範囲をさらに広げる
• マルチクライアント状況でのリアルタイム更新を手続き的なプログラ
ミングを必要とせずに実現する
• プラクティスを中心としたドキュメンテーションの充実
利用者評価に関して
• Webデザイナを中心に行った評価実験(学習と試験)に関しての論文
を投稿
• 開発に使用しているユーザへの調査(インタビュー)
29
14年6月13日金曜日
まとめ
宣言的な記述でデータベース連動のWebアプリケーション
を作成可能なフレームワークを開発した
繰り返しや更新処理,リレーションシップなどを,宣言的
な設定から稼働させる実装に成功した
特にメンテナンス作業において,エンドユーザやWebデ
ザイナの参画の機会を増やす事が期待できる
30
http://inter-mediator.org
14年6月13日金曜日

More Related Content

Similar to トップエスイー勉強会2014第1回-INTER-Mediator

run Keras model on opencv
run Keras model on opencvrun Keras model on opencv
run Keras model on opencvTakuya Minagawa
 
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza GameYoshiaki Rikitake
 
教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel
教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel
教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrelooedostartup
 
リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~
リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~
リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~Kazuyoshi Motoki
 
文系ITエンジニア育成教育におけるRubyの活用
文系ITエンジニア育成教育におけるRubyの活用文系ITエンジニア育成教育におけるRubyの活用
文系ITエンジニア育成教育におけるRubyの活用Jun Iio
 
先駆的研究テーマ mruby/c
先駆的研究テーマ mruby/c先駆的研究テーマ mruby/c
先駆的研究テーマ mruby/cshimane-itoc
 
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせLiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせTakuya Minagawa
 
M2M製品開発におけるmrubyの効果160726
M2M製品開発におけるmrubyの効果160726M2M製品開発におけるmrubyの効果160726
M2M製品開発におけるmrubyの効果160726shimane-itoc
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたTakuya Minagawa
 
Manabanaight 4 20120623-1 (1)
Manabanaight 4 20120623-1 (1)Manabanaight 4 20120623-1 (1)
Manabanaight 4 20120623-1 (1)manabanight
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化takashi ono
 
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]takashi ono
 

Similar to トップエスイー勉強会2014第1回-INTER-Mediator (17)

run Keras model on opencv
run Keras model on opencvrun Keras model on opencv
run Keras model on opencv
 
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game
 
教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel
教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel
教育版レゴマインドストームを使ったミライをつくる体験型学習 Afrel
 
リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~
リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~
リアルタイムドキュメンテーション ハンズオンセミナー ~スマートフォンだけで記録・編集・公開~
 
文系ITエンジニア育成教育におけるRubyの活用
文系ITエンジニア育成教育におけるRubyの活用文系ITエンジニア育成教育におけるRubyの活用
文系ITエンジニア育成教育におけるRubyの活用
 
先駆的研究テーマ mruby/c
先駆的研究テーマ mruby/c先駆的研究テーマ mruby/c
先駆的研究テーマ mruby/c
 
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせLiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせ
 
5 1
5 15 1
5 1
 
M2M製品開発におけるmrubyの効果160726
M2M製品開発におけるmrubyの効果160726M2M製品開発におけるmrubyの効果160726
M2M製品開発におけるmrubyの効果160726
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
 
Ssmjp20130925
Ssmjp20130925Ssmjp20130925
Ssmjp20130925
 
Manabanaight 4 20120623-1 (1)
Manabanaight 4 20120623-1 (1)Manabanaight 4 20120623-1 (1)
Manabanaight 4 20120623-1 (1)
 
0908
09080908
0908
 
Vu
VuVu
Vu
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化
 
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
 
20180424 orb slam
20180424 orb slam20180424 orb slam
20180424 orb slam
 

More from Masayuki Nii

Cocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionCocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionMasayuki Nii
 
Cocoa勉強会#23-カスタムシートとModality
Cocoa勉強会#23-カスタムシートとModalityCocoa勉強会#23-カスタムシートとModality
Cocoa勉強会#23-カスタムシートとModalityMasayuki Nii
 
Cocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うCocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うMasayuki Nii
 
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Masayuki Nii
 
Cocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめCocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめMasayuki Nii
 
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないCocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないMasayuki Nii
 
Cocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるCocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるMasayuki Nii
 
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューCocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューMasayuki Nii
 
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号するCocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号するMasayuki Nii
 
Cocoa勉強会#27-QuickLookプラグインの作り方
Cocoa勉強会#27-QuickLookプラグインの作り方Cocoa勉強会#27-QuickLookプラグインの作り方
Cocoa勉強会#27-QuickLookプラグインの作り方Masayuki Nii
 
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプCocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプMasayuki Nii
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Masayuki Nii
 
Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Masayuki Nii
 
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUICocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUIMasayuki Nii
 
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Masayuki Nii
 
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションCocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションMasayuki Nii
 
Cocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使うCocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使うMasayuki Nii
 
Cocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使うCocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使うMasayuki Nii
 
Cocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイCocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイMasayuki Nii
 
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみるCocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみるMasayuki Nii
 

More from Masayuki Nii (20)

Cocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionCocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnection
 
Cocoa勉強会#23-カスタムシートとModality
Cocoa勉強会#23-カスタムシートとModalityCocoa勉強会#23-カスタムシートとModality
Cocoa勉強会#23-カスタムシートとModality
 
Cocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うCocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使う
 
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
 
Cocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめCocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-Baseによるローカライズまとめ
 
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないCocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
 
Cocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるCocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみる
 
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューCocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
 
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号するCocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
 
Cocoa勉強会#27-QuickLookプラグインの作り方
Cocoa勉強会#27-QuickLookプラグインの作り方Cocoa勉強会#27-QuickLookプラグインの作り方
Cocoa勉強会#27-QuickLookプラグインの作り方
 
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプCocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装
 
Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法
 
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUICocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
 
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
 
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションCocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
 
Cocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使うCocoa勉強会#43-Blocksを使う
Cocoa勉強会#43-Blocksを使う
 
Cocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使うCocoa勉強会#42-UIWebKitをコンポーネントとして使う
Cocoa勉強会#42-UIWebKitをコンポーネントとして使う
 
Cocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイCocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイ
 
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみるCocoa勉強会#63-Xcode Server〜みんなで使ってみる
Cocoa勉強会#63-Xcode Server〜みんなで使ってみる
 

トップエスイー勉強会2014第1回-INTER-Mediator