iPhoneアプリ開発教育に関する一考察
17
0
0
全文
(2) 第58巻. 1.は. Apple社. 第2号. じ. め. に. の ホ ー ム ペ ー ジ の 情 報 に よ れ ば,2011年8月. ン プ ロ グ ラ ム 数 は425,000に. 達 し て い る。 ま た,DropBoxやEvernoteな. ク ラ ウ ドサ ー ビ ス の 利 用 が 拡 大 して お り,ク い る 。2011年3月2日. のiPad2発. プ リケ ー シ ョ どの パ ー ソ ナ ル. ラ ウ ド端 末 と し て のiPhoneの. 表 イ ベ ン トに お い てiPhoneの. た こ と が 発 表 さ れ る な ど,iPhoneの. (1)iPhoneア. の 段 階 でiPhoneア. 利 用 も進 ん で. 販 売 台 数 が1億. 台を超え. 普 及 が急 速 に拡 大 して い る こ とが わ か る。. プ リケ ー シ ョ ン プ ロ グ ラ ム. 現 在,iPhoneのAppStoreに. 登 録 さ れ て い る ア プ リケ ー シ ョ ン プ ロ グ ラ ム(以. リ と 略 す)は,無. 料 の ア プ リが 約3割. で,そ. AppStoreの19の. カ テ ゴ リの ア プ リの 一 部 を 示 し た も の で あ る 。. 下 アプ. の 他 は 有 料 の ア プ リで あ る。 以 下 の 表 は,. ア プ リを 各 利 用 者 が 導 入 し て い く こ と に よ り,す. べ て のiPhoneが. この よ う に多 種 多 様 な 異 な っ た 端 末 と して 成. 長 して い く と い う の が 従 来 の 携 帯 電 話 と の 大 き な 違 い で あ る 。 表1AppStoreiPhoneア. プ リの 例. カ テ ゴ リ名. 有 料 ア プ リの 例. メディカル. 手 相 漢 方,赤 1話3分. ブ ック ビ ジネ ス. ち ゃん 泣 きや み 音!,解. 速 習H経. 済 学50講,人. 次 に す る こ と,CamCard(名. 教育. 書 き取 り漢 字 練 習,聞. フ ァイ ナ ンス ヘ ル ス ケ ア/フ. 支 出 管 理,ウ ィ ッ トネ ス. 刺 認 識),Timenote. き取 り王 国,Real英. ィ プ ル 家 計 簿,ロ. 筋 肉 ト レ ー ニ ン グ,引. 剖学 クイズ. は 「話 し方 」で9割 変 わ る. ー ン計 算iLoanCalc. き 締 め ト レ ー ニ ン グ,カ. 仕事効率化. PostEver,GoodReader,7notesmini,縦. 辞 書/辞 典/そ の 他. 常 用 漢 字 筆 順 辞 典,iHandy翻. ロ リー計 算. 型 カ レ ン ダ ー. 訳 機Pro,大. 本 表 はhttp://www.apple.com/jp/iphone/apps-for-iphone/#heroOverviewを. (2)パ. 会話. 辞林 基 に 作 成. し た. ー ソ ナ ル ク ラ ウ ドの 例. パ ー ソ ナ ル ク ラ ウ ドの 代 表 例 と して イ ン タ ー ネ ッ ト上 に 個 人 的 情 報 を 分 類 保 存 ・検 索 ・ 整 理 で き,WindowsPC,MacPC,iPhone,iPadな 拡 大 し て い る 。1ヵ. 月 あ た り60MB以. ど か ら利 用 で き るEvernoteの 下 の ア ッ プ ロ ー ド量 で あ れ ば,無. と が で き る 。 そ れ 以 上 の 利 用 を す る 場 合 に は,年. 額45ド. ル で1ヵ. プ ロ ー ド量 を 拡 大 で き る 。 こ のEvernoteとGTD(GetThingsDone)の 一86(266)一. 利用が. 料 で使用 す るこ. 月 あ た り1GBま. で ア ッ. 考え方を組み合.
(3) iPhoneア わ せ る と,業. プ リ開 発 教 育 に関 す る一 考 察(北 門). 務 の 効 率 を 飛 躍 的 に 向 上 さ せ る こ と が で き る と 言 わ れ て い る 。 ま た,一. 情 報 を 企 業 内 で 共 有 す る こ と に よ り,社 ま た,DropBoxは. ク ラ ウ ド上 にUSBメ. 記 憶 容 量2GBま. 部 の. 内 外 か ら共 有 情 報 へ の ア ク セ ス が 可 能 と な る 。 モ リを 置 く よ う な 感 覚 で 使 用 す る こ と が で き る。. で は 無 料 で あ る。 共 有 機 能 を 使 え ば,複. 数 の 利 用 者 で の情 報 共 有 が 可 能. はiCloudと. か ら ス タ ー トさ せ,音. と な る。 ま た,Apple社. い う サ ー ビ ス を2011年10月. ア プ リ,カ レ ン ダ ー,書 類 な ど を 無 料 で 保 存 す る こ と が 可 能 に な る 。iCloudを PC上. のiTunesを. 使 用 し な くて もiPhone/iPad/iPodTouchな. 楽,写 真,. 利 用 す れ ば,. ど複 数 端 末 の 同 期 を 行 う こ. とが で き る。. 図1パ. iPhoneア iPhoneア. ー ソナ ル ク ラ ウ ドの 概 念 図. プ リ市 場 の 拡 大 や ビ ジ ネ ス ッ ー ル と し て のiPhoneア. プ リの 利 用 拡 大 に 伴 っ て,. プ リを 開 発 で き る 人 材 の 育 成 が 急 務 と な りっ っ あ る 。 そ の よ う な ニ ー ズ に 対 応. す る た め,2009年12月. か らiPhoneビ. ジ ネ ス ア プ リ ケ ー シ ョ ン開 発 を 目 標 と し た 「iPhone. ア プ リ開 発 コ ー ス 」 の 教 材 開 発 を 開 始 し た 。2010∼2011年. に か け て4回,ゼ. ミ生/大. 学. 院 生 に 対 し て 延 べ7名. に 教 育 を 実 施 して 内 容 の 改 善 を 続 け て き た 。 そ の 成 果 を 活 用 して. 2012年. ジネ ス特 修 実 習 と して本 格 的 な教 育 を実 施 す る予 定 で あ る。 本 稿 で. 度 か ら はITビ. は,「iPhoneア. プ リ開 発 コ ー ス」 で 得 た 教 育 方 法 の 研 究 に っ い て 述 べ た い 。. 2.MVCモ. iPhoneア. デ ル に 対 応 し たiPhoneア. プ リの 開 発 環 境 で あ るXcode4.1の. 用 い ら れ るMVCモ. デ ル に 準 拠 し て お り,MVCモ. 重 要 で あ る 。 表2はXcodeの. フ レ ー ム ワ ー ク は オ ブ ジ ェ ク ト指 向 開 発 で デ ル と して の 開 発 環 境 の理 解 が非 常 に. フ レ ー ム ワ ー ク をMVCモ 一87(267)一. プ リ開 発 環 境. デ ル に対 応 させ て 概 説 した も の.
(4) 第58巻. 第2号. で あ る。. 表2MVCモ MVC. UML記. デ ル の概 要. 説明. 号. デ ー タ ス トア と し てSQLiteを. 内包 した デ ー タ モ デ. ラが 実 装 さ れ て お り,非 常 に簡 単 に デ ー タ ベ ー ス の 定 義 を 行 う こ と が で き る。 デ ー タ モ デ ル へ の. Model. APIと 実体オ ブジェク ト. し てCoreData,ObjectModelContextと. ObjectModelが. 準 備 され て い る。. イ ン タ ー フ ェ ー ス を視 覚 的 に構 築 で き る イ ン タ ー フ ェ ー ス ビ ル ダ が 提 供 さ れ て い る。 イ ン タ ー フ ェ ー ス ビル ダ の ライ ブ ラ リか らテ ー ブ ル ビ ュ ー. View. や テ キ ス ト フ ィ ー ル ド,ラ 境界オ ブジェク ト. ベ ル,ボ. タンなどの部. 品 を 表 示 画 面 に配 置 す る。 コ ー ドエ デ ィ タで 編 集 す る ヘ ッ ダ ー フ ァ イ ル と実 装 フ ァ イ ル の 総 称 で あ る 。RootViewController, ∼ViewControllerと. Control. い うプ ロ グ ラム 名 で 開 発 す る. こ と が 多 い が,MVCのController部 制御オ ブジェク ト. 以 下 にMVCに. 対 応 し たXcodeの. 分が実装 プロ. グ ラ ム に対 応 して い る と理 解 で き る。. 各 フ レ ー ム ワ ー ク に っ い て 述 べ る。. 膣翼. 回 亘 亘 回 亘亘〕回 EdiヒorWewOrganize【. 図2ToDoListア 図2はToDoListア こ のToDoListで (属 性:ア. な の で,細. プ リの デ ー タ モ デ ル定 義 例. プ リの デ ー タ モ デ ル 定 義 例 で あ る。 は,デ. ー タ ベ ー ス 名(エ. ト リ ビ ュ ー ト)がComment(文. (文 字 列)で. 颪』. ン テ ィ テ ィ)がToDoで. 字 列),dueDate(文. あ り,フ. 字 列),priority(整. ィ ー ル ド名 数),task. あ る こ と を 宣 言 して い る。 デ ー タ 型 は プ ル ダ ウ ン メ ニ ュ ー か ら選 択 す る だ け か い ス ペ ル を 覚 え る 必 要 は な く,操. 一88(268)一. 作 方 法 を修 得 す れ ば よ い。.
(5) iPhoneア. (2)Viewイ. ブ゜リ開 発 教 育 に 関 す る 一 考 察(北. 門). ンタ ー フ ェー ス ビル ダ. ●00凸HelloWorld-MainWindow2【ib⊂). ⑤Ol・dl・ 旧. 回 亘回 回 亘回 回. X⊂ode. ・研 ・1回. LR口n3tOP5こheπ. 閥ol55ue5. レe㎞kpolr慮5. 旧O&璽,gI器. 禺1ぐ. レ凸. 心. 泊. 漕. 舳. 棚敵 綱b…. 団i触orWew卿nizげ. ♪らHdbW。"d^PP匪1㎎. 、ゴ. ▼〔 ゴHell。W。rld. 国 匠lHelloWorOdAppDdogate,hO _邑1、. 圃H・II。W。 ・ldAPP匪1・9・t・.mO 冑 圏1ト. 砂. ・ ρIOl. 〔hell。 馳bel-■ 馳匪1」型 L璽而側 遍nd一 ▼ 恥fe・en`旧gO帆iet5. 一一◎ ◎. (deleg3:。 〉一く賃F,1ご50㎜ 咀r◎ N酬 薩。reren`lngOuヒleヒO 一 ▼Roforon`ingO"t回Colle面o酪. 、r日. >LコSUPP伽ingFile5 レ 〔コH・ll。W。rldTe応 レ〔 コFram創. 」. ・総ID8田 ▼Ouヒ1巴t5. ・吋 霊隣 牲 、D、 。,。. NewM。ren`lngO":leζ. 剛k5. LabeI. ⊂OIIe`t陰0員. (伽. 酬e口o. く'瓢 撒 哨 旨 肱on一 糊H陰 【b 肖 Tou由UpIn51de 哨. (騒 曲1i。.. /. ▽. o. ○. マR。C巴iv醐A【ti。n5. レ〔 二]防 。duα5. sayHello. 06i刷. 一. /. 〔 価o切e・ 脇. ロ 冶 囲. clearHello. 幽. Label器. 'L. ①. ■t;盆 りa「i邑b呼 層dヒf. ・一 ・Ro凹 闘dR巴dB団"00-InヒOκ ■Pヒ5 11㎞oud1鯉nt5andsendsana㈱ 臆 ' 一/me5糊e璽oat3ηGtoh堕 αwhen_. SegmenヒedCon電roトDi5plays. I超1蹴 朧 淵1翻 欝 φ 一. τo麗tFieOd-Di5P,邑y∼ediこ 邑blo賦ext To黙a舶5eod5anaαionme5論getoa nrge電ob」eαwhenReωmi5t己pped.. ■. +③. 国団/○'. ℃し. 回1. 図3HelloWorldの 図3はHelloWorldア. Slide卜D幽5pl町5acontlnuou5鳳nge 、fldIIα 筋lhe5ele⊂tbnoチ ∼asingle value.. i ㌧4. イ ン タ ー フ ェ ー ス ビル ダ 使 用 例. プ リの イ ン タ ー フ ェ ー ス ビル ダ 使 用 例 で あ る。. イ ン タ ー フ ェ ー ス ビ ル ダ で は,右 側 下 の ラ イ ブ ラ リか ら部 品 を 中 央 の ビ ュ ー に ド ラ ッ グ ・ ドロ ッ プ して 入 出 力 画 面 を 構 築 して い く。 ま た,右. 上 の コ ネ ク シ ョ ンイ ンス ペ ク タで イ ベ. ン トハ ン ド ラ と ビ ュ ー 上 の 部 品 を 関 連 付 け て い く。Xcodeに. はVisualBasicやDelphiの. よ う な コ ン トロ ー ル 名 を プ ロ パ テ ィ で 定 義 して プ ロ グ ラ ム で 参 照 す る と い う 概 念 が 存 在 し な い の で,こ. の 点 に っ い て は 要 注 意 で あ る。Xcodeで. を コ ネ ク シ ョ ン イ ン ス ペ ク タ に 表 示 し,物. (3)Control:コ Xcodeの. はObjective-C側. で宣 言 した 変 数 名. 理 的 に接 続 す る と い う操 作 を行 う。. ー ドエ デ イ タ. コ ー ドエ デ ィ タ は,テ. グ 機 能 な ど が 充 実 して お り,非 能 で あ る 。 従 っ て,自. ン フ゜レ ー トに よ る コ ー ド自 動 生 成,コ. ー ド補 完,デ. バ ッ. 常 に 少 な い 文 字 入 力 で プ ロ グ ラ ム を 構 築 して い く こ と が 可. 動 生 成 さ れ る フ レ ー ム ワ ー ク と コ ー ドの 理 解 が 重 要 と な る 。. 最 も 複 雑 な テ ン プ レ ー ト はNavigation-basedApplicationで,NavigationController, TableView,CoreDataの. 基 本 モ ジ ュ ー ル を 含 ん だ プ ロ グ ラ ム を 自 動 生 成 す る。 ほ と ん. ど の 前 準 備 は 「ア プ リ名AppDelegate」 報 の 処 理 を 行 う 。 こ の2っ. で 行 わ れ,RootViewControllerを. の モ ジ ュ ー ル の 理 解 と カ ス タ マ イ ズ がiPhoneア. の ゴ ー ル と な る 。PhoneBook(電. 話 帳)やToDoList(期 -89(269)一. 起 点 と して 情 プ リ開 発 入 門. 限 付 課 題 リ ス ト)な ど の デ ー タ ベ ー.
(6) 第58巻. jH駐. ◎[・. 臣田n5tOP宝h已m已B陀. Iil=⑪ ▼. 巨. ・. 日. 闇1<卜1山H. ノノ. ヒロロリロド ロ. 。柳. 囲,、. 陶 且t曲. ・ld・[動Hdbw。. ・ld卿D・1・9・t・.h咽. 。5・1・㎝1。・. 、,,.11. セセロ ドい. 翫,,、,軸_。 ∫∫. mlH已IloWorldApPD己1已9ユt巳.m ・Mai¶Wlnd{⊃W .川b. ト. Ibw。 ・ld・LコHdbw。. ll,,U曲,、. 陣 ト ー5団. 一Hdl。W。rldAppD已. DdgO543Llbrar冒 旦kPOInt5. 凸. ㌃HヒIloWorld 」 ⊇ヒ、,9,ヒ、.1。5三ロK4ヨ ヤ. 田。WD湘. o. ・ …p・・爬4… 】1互1. 匝㎞. ⑤. 甲. む . 第2号. 、、,、 、_,、. 〔opyl.lIltユ. 臼11至:腔. 、価 畑.. 丈 学.玖LLI.1⊆11t三1.旧. 三巳1."巳己.. 〃. 叩ortlngFllヒ5. #1¶port{口IKIt∫01Klt.h}. ロリロド ロ ヨロ. ト:F,、m,w幡. 醍lnt巳r† 己【 二 已H已llo胃orl口 1日Out㌃ 已t口IL己b已. 卜Produ〔t5. 点ρρ口已1已9己t已:N5〔 ㌃ 牢h已lloL己b已1冨. 〕b]已 【 二t{01点PP㌃1【. 二 己tl口. ㌃_t}{. } 醍prOP已rtylnon己to¶1に,r已t己lnlI日Out㌃ 一II日A【二tlonl5己yH已llo:llol5已n口 一II日A【二tlonl〔1已. 已t口II囲lnoo㌔. リ 牢隔 リln口o隔リ冨. 已「冨. 己rH已llo:llol5已n口. 已「冨. 醍已no. 図4HelloWorldAppDelegate.hの. コ ー ドエ デ ィ タ で の 編 集 例. ス ア プ リ ケ ー シ ョ ン は,Navigation-basedApplicationを iPhoneア. プ リ 開 発 教 育 で は,こ. フ ェ ー ス ビ ル ダ の 使 い 方,イ. 3.iPhoneア. ンタ ー. プ リ 開 発 教 育 に お け る3つ. あ る 。 第1点. の ハ ー ドル. 員 側 の説 明 も しくは受 講 者 の理 解 とい う面 で 苦 労. はApple社. ジ の 表 現 方 式 で あ る 。 第2点. 使 い 方,CoreData. を 追 っ て 理 解 を 深 め て い け る よ う に 構 成 して い る 。. ブ゜リ開 発 教 育 を 行 う上 で,教. した こ と が3っ. 基 本 的 な 使 い 方,イ. 構 築 の 仕 方,NavigationControllerの. の 各 概 念 の 理 解 と 利 用 方 法 な ど,順. Controllerを. の ゴ ー ル を 目 指 し てXcodeの. ン タ ー フ ェ ー ス と して 利 用 す る 各 コ ン トロ ー ル 部 品 と の デ ー. タ の や り 取 り,TableViewの. iPhoneア. 拡 張 した もの で あ る。. 独 自 の 言 語 で あ るObjective-Cの. はiPhoneの. ク ラ ス や メ ッセ ー. 標 準 イ ン タ ー フ ェ ー ス に 準 拠 し たNavigation. 利 用 した 画 面 遷 移 方 法 で あ る 。 第3点. は デ ー タ ベ ー ス を 内 包 し たCoreDataの. ManagedObjectContext,ManagedObject,FetchRequest,fetchedResultsControllerな ど の 概 念 と活 用 方 法 で あ る 。 以 下 これ らに つ い て 説 明 し た い 。. (1)Objective-Cの. ク ラ スや メ ッセー ジの表 現 方 式. Objective-Cは,C言 NeXT買. 語 を 拡 張 してNeXT社. 収 後 はApple社. が 独 自 に 開 発 し た も の で,Apple社. の 標 準 開 発 言 語 と な っ た 。Objective-Cは,C言. による. 語 が 基 本 とな った. オ ブ ジ ェ ク ト指 向 言 語 で あ る の で 非 常 に コ ンパ ク トで 高 速 な ア プ リを 開 発 す る こ と が で き る。 こ の 点 はJava言. 語 で 開 発 さ れ たAndroidア. プ リに 対 し てiPhoneア. プ リの 方 が 高 速 で. あ る と い う優 位 性 に っ な が って い る 。 最 新 のObjective-C2.0で. 記 述 した ク ラ ス の 宣 言 と実 装 の 構 成 を 以 下 に 示 す 。 一90(270)一.
(7) iPhoneア. プ リ開 発 教 育 に関 す る一 考 察(北 門). ① ク ラ ス ヘ ッ ダ ー フ ァイ ル の 構 成 例. #import<UIKit/UIKit.h> @interfaceク. ラ ス 名:ス. ー パ ー ク ラ ス 名 く 派 生 ス ー パ ー ク ラ ス 名>1. イ ン ス タ ン ス/変. 数 の宣 言. } @property(nonatomic,retain)イ 一(戻 り値 型)メ ソ ッ ド名;//ス. ン ス タ ン ス の ク ラ ス イ ン ス タ ン ス 名; ー パ ー ク ラ ス の メ ソ ッ ド を オ ー バ ー ラ イ ドす る 場 合 に は. //宣 言 す る 必 要 は な い 。 ベ ン トハ ン ド ラ 名:(id)sender;. 一(IBAction)イ @end. ② ク ラス実 装 フ ァイ ル の構 成 例 #import"ク. ラ ス 名.h". @implementationク. ラ ス 名. @synthesizeイ. ン ス タ ン ス 名;. 一(戻 り 値 型)メ //メ. ソ ッ ド名{. ソ ッ ドの 実 装. return戻. り 値 の 変 数;. } 一(IBAction)イ //イ. ベ ン ト ハ ン ド ラ 名:(id)sender{. ベ ン ト処 理. } @end. ク ラ ス に は イ ン ス タ ン ス/変. 数,メ. ソ ッ ド,イ ベ ン トハ ン ドラ が 宣 言 さ れ る と い う点 は 他. の 一 般 的 オ ブ ジ ェ ク ト指 向 言 語 と変 わ ら な い 。propertyとsynthesize以 フ゜ロ グ ラ ム の 場 合 と 似 て い る。 従 っ て,ク 理 解 は容 易 で あ る。@propertyで @synthesizeと. 外 は普 通 のGUI型. ラ スの 宣 言 と実 装 の表 現 方 法 は形 式 的 な もので. イ ン ス タ ン ス に 対 応 し たgetterとsetterを. 宣 言 す る こ と でgetterとsetterの. 自 動 的 に 宣 言 し,. ア ク セ ス メ ソ ッ ドが 自動 生 成 さ れ る の で,. 独 自 の メ ソ ッ ドと イ ベ ン トハ ン ドラ に 専 念 で き る 。 ③ メ ソ ッ ドの 呼 び 出 し Objective-Cの. メ ソ ッ ド呼 び 出 しは 以 下 の 形 式 で 行 わ れ る 。. [オ ブ ジ ェ ク ト名 Java言. 語 やC++で. メ ソ ッ ド名:引. 数 リ ス ト];. の メ ソ ッ ド呼 び 出 し は,そ ソ ッ ド名(引. れぞれ. Java:オ. ブ ジ ェ ク ト名.メ. 数 リス ト);. C++:オ. ブ ジ ェ ク ト名 一 〉 メ ソ ッ ド名(引. 数 リ ス ト);. で あ る の に 比 べ る と 非 常 に ユ ニ ー ク な 印 象 を 受 け る 。 ま た,引 [オ ブ ジ ェ ク ト名 の よ う に,引. 数2の. メ ソ ッ ド名:引. 数1ラ. ベ ル:引. 上 あ る場 合 に は,ラ. あ る 場 合 に は,. 数2];. 説 明 を す る ラ ベ ル が 付 い て お り,メ. な っ て い る。 引 数 が3以. 数 が2っ. ソ ッ ドの 引 数 の 意 味 が わ か る よ う に. ベ ル と 引 数 が 追 加 さ れ て い く。. 一91(271)一.
(8) 第58巻. 第2号. ④ メ ソ ッ ドの 定 義 引 数 が2っ 一(戻. あ る 場 合 の メ ソ ッ ドの 定 義 は以 下 の よ う に 行 う。. Java言. り値 の 型)メ. ソ ッ ド名:(引. 数1の. 型)引. 数1ラ. ベ ル:(引. 数2の. 型)引. 数2;. 型)引. 数2. 語 の 場 合,. 戻 り値 の 型. メ ソ ッ ド名(引. と な り,引 数2以. 数1の. 型. 引 数1,引. 数2の. 型. 引 数2);. 降 の説 明 を 行 う ことは で きな い。. ⑤ メ ソ ッ ドの 実 装 引 数 が2っ 一(戻. あ る 場 合 の メ ソ ッ ドの 定 義 は以 下 の よ う に 行 う。. り値 の 型)メ. ソ ッ ド名:(引. 数1の. 型)引. 数1ラ. ベ ル:(引. 数2の. { 複 数 の実 行 文 } Objective-Cの. 場 合 で も引 数1の. 説 明 用 の ラ ベ ル は な い が,メ. ソ ッ ド名 が 引 数1と. 深 い関 係. が あ る場 合 が 多 い た め こ の よ うな 形 式 に な っ て い る と解 釈 で き る。. (2)iPhone標. 準 イ ン タ ー フ ェ ー ス:NavigationController. NavigationControllerは,図5で. 示 す よ う にViewController間. 組 み で あ り,NavigationBarとNavigationltemで 最. 初. のViewController(表. Controllerを. 示. 起 点 に 各ViewControllerに. 例 え ば,Page1ViewControllerに. の 移 動 を サ ポ ー トす る 仕. 構 成 され る。 画 面)はRootViewControllerで. あ. り,こ. のView. 移 動 し た り 戻 っ た りす る 。. 移 動 す る に は,. Page1ViewController*page1ViewControllerニ[[Page1ViewController alloc]initWithNibName:@"Page1ViewController"bundle:nil]; [selfnavigationControllerpushViewController:page1ViewControlleranimated:YES]; の よ う にPage1ViewControllerの 利 用 す る 。 ま た,元. のViewControllerに. イ ン ス タ ン ス を 作 成 後,pushViewControllerメ 戻 る に はSaveボ. タ ン の 処 理 な ど で,. [selfnavigationControllerpopViewControllerAnimated:YES]; の よ う にpopViewControllerAnimatedメ. ソ ッ ドを 利 用 す る 。. 一92(272)一. ソ ッ ドを.
(9) iPhoneア. キャリア 琴. プ リ開 発 教 育 に関 す る一 考 察(北 門). キ ャ1」ア 宇. 口. 3:20且M. 口. 321且M. ∫ }. ﹁一 -一. 言. 工 尼 ∵-一. へ ^冗:}∫ 一 ∼. titleView. Pag91. }. NavigationBar. 図5NavigationControllerとNavigationBar/Navigationltem (『iOSViewControllerプ. (3)デ. ロ グ ラ ミ ン グ ガ イ. ド』 を 参 考 に 作 成). ー タ ベ ー ス モ デ ル とCoreData. CoreDataの. 扱 う デ ー タ ス トア と して は,デ. ー タ ベ ー ス,バ. イ ナ リ フ ァ イ ル,メ. 種 類 が 存 在 す る が,こ こ で は デ ー タ ベ ー ス を 想 定 して 説 明 を 進 め る 。iPhone用 ス と してSQLiteが Dataは. 装 備 さ れ て お り,SQL文. モ リの3. の デ ー タベ ー. を 用 い た プ ロ グ ラ ミ ン グ も可 能 で あ る が,Core. デ ー タ ベ ー ス ア ク セ ス と メ モ リ上 で の 管 理 を 内 包 し て い る た め,デ. ー タベ ー ス の操. 作 を 意 識 す る こ と な く永 続 デ ー タ の 保 存 ・参 照、・更 新 な ど を 行 う こ と が で き る。 図6はCoreDataの の 集 合 で あ り,デ. 各 要 素 を 示 して い る。ManagedObjectContextはManagedObject ー タ ベ ー ス に 相 当 す る 。ManagedObjectは. デ ー タベ ー ステ ー ブル の メ モ. リー 上 の コ ピ ー に相 当 す る 。PersistentStoreCoordinatorはManagedObjectと ス間 の デ ー タの整 合 性 を維 持 管理 す る。. 一93(273)一. デ ー タベ ー.
(10) 第58巻. 第2号. 「Manag,d。bjectC。n、,x、. 、 '、'. Q 人. ・. ・. ' ノ" 'ManagedI. \/Managed・ 、 、. User. 、. ・ 、Objectノ 、. \Objectノ. ノ'". 、. 、' 、. 、 、. 、. 「・ノ. 、. Managed',. 一',. 、 、Objectノ. rogram. 、. 一・ 、. ノ. \ L. ▼. PersistentStoreCoordinator. Data Model _/. Storage (e.9.,SQLite, XML,...). 図6CoreDataの. 各要素. (『ProfessionaliPhoneandiPadDatabaseApplicationProgramming』 CoreDataを. 用 い た プ ロ グ ラ ミ ン グ に お い て はManagedObjectContext,fetched-. ResultsController(デ. ー タ ベ ー ス 操 作 の 結 果 を 保 持),SortDescriptor,FetchRequest. (デ ー タ ベ ー ス の 操 作),ManagedObject(テ 保 存. ・参 照. を 参 考 に 作 成). ・更 新. ー ブ ル に 対 応)な. どを 組 み 合 わ せ て デ ー タの. ・削 除 を 行 う 。. Predicate:検. 索 条 件,SortDescriptor:並. Ascending:YES:昇. べ 替 え の キ ー と 昇 順 ・降 順 を 指 定,. 順. FetchRequestは,SQL文. の"SELECT*fromテ. ー ブ ル 名where条. ル化 した もの で あ る。 図7FetchRequestの (『CoreDateProgrammingGuide』. 一94(274)一. 例 を 参 考 に 作 成). 件 式"を. カプセ.
(11) iPhoneア. 図7はFetchRequestの. 例 を 示 し た も の で あ る 。Keyが. す る 。 こ の 例 で は,検 順 でEmployeeテ. プ リ開 発 教 育 に 関 す る 一 考 察(北. 索 条 件 をMarketingに. 門). テ ー ブ ル の フ ィ ー ル ド名 に 対 応. 設 定 し てsalaryとlastNameに. よ る並 べ 替 え. ー ブ ル か ら デ ー タ を 抽 出 し て い る。. FetchRequestで. 得. た. fetchedResultsControllerの. 結. 果. はfetchedResultsControllerに. 格. 納. 情 報 を 編 集 し て デ ー タ ベ ー ス の 内 容 をTableViewに. さ. れ. る。. 表 示 す る. こ とが で き る。. 4.開. (1)開. 発 プ ロ セ ス と 実 機 テ ス トに よ る ア プ リの 改 善. 発 プロセス. 開 発 プ ロ セ ス を 川頁に 列 挙 す る と 以 下 の よ う に な る 。 ① データモデルのデザイ ン ② ヘ ッダ ー フ ァイ ル の編 集 ③ ビュ ー モ デ ル の デ ザ イ ン ④ 実 装 モ ジュ ー ル の プ ロ グ ラ ミ ング ⑤iPhoneシ. ミュ レー タ とデ バ ッガ で の テ ス ト. ⑥ 実 機 で の テ ス ト(実 機 で の テ ス トを 行 う た め に は,Apple社 ユ ー ザIDの. 登 録,ア. ブ゜リの 登 録,テ. 実 機 テ ス トを 通 じて2っ. の サ イ トで,認. 証 の 取 得,. ス ト端 末 の 登 録 な ど が 必 要 で あ る。). の 面 か ら改 善 要 望 が 発 生 す る. 一複 数 ユ ー ザか らの改 善 要 望 一継 続 的 使 用 時 に発 生 す る違 和 感 の解 消 ⑦ ビュ ー レベ ル の改 善 ⑧ コ ー ドレベ ル の改 善. (2)ToDoリ 図8はToDoリ. ス ト ア プ リの 改善 例 ス ト ア フ゜リの 最 初 の 設 計 例 で あ る 。 こ の ア プ リで は,TableViewの1. 行 に タ ス ク と 期 限 を 表 示 して い る 。 ま た,優. 先 度 は4段. して い た 。 実 機 テ ス トを 継 続 して い る と,以. 下 の よ う な改 善 要 望 が 出て き た。. ① 優 先 度 は3段. 階 で 赤 ・機 ・緑 ・青 の4色. 階 で 十 分 で あ る。. ② 色 は 控 え 目 の 配 色 と す べ き で,赤. ・黒 ・灰 色 が 適 当 で あ る 。. ③ タ ス ク内 容 は もっ と多 くの情 報 を表 示 で き る よ う に した い。 -95(275)一. を使 用.
(12) 第58巻. 第2号. ④ タ ス ク の補 足 説 明 を追 加 す べ きで あ る。 ⑤ 期 限 の な い タ ス ク も あ る の で,期. 限 な しに変 更 で き る よ う にす べ きで あ る。. こ れ ら の 要 望 を 反 映 し た 結 果 を 図9に 行 と し,2行. 示 す 。 優 先 度 は3段. 階 と し た 。TableViewは2. 目 に 期 限 と コ メ ン トを 表 示 す る よ う に 改 善 し た 。 ま た,タ. メ ン ト入 力 と 「期 限 な しへ 」 ボ タ ン を 追 加 し,優. ス ク編 集 画 面 に コ. 先 順 は 赤 ・黒 ・灰 色 の3段. 階 表 示 にす る. こ と に よ り落 ち 着 い た 印 象 の ア プ リ と な っ た 。. キ ャリア 骨2[:25口 '㌔'㌔. 1保. 存IIキ. ャ ンセ ル1. 、. ∫. ㌔. ∫. タ ス ク: 「 テスト亨スク1 優 先 度:. 曜顕. 高. 期 限:23'06'28 邑. 一「H馬`暫. 中. 低 」. 】1■ ■一v ■1■. 1`暫 ■ 」 眺. Iu月. 4月. 平 成22年 一「 厄基・`o→. ・23臼. 一. 15月 一. 平 成24年 〒F=睦A置. 図8ア. ・. ・ 1. 24日. 6月. ,ロ 一 一. 自:. ー. 22日. A聖. 一■1. プ リ改 善 の 第 一 段 階:直 観 的 な 独 自設 計 レベ ル. キヤリア 宇2:3石. 凹 」1. 口. ・:λケ. 国. タ ス ク: 「. タ ス ク2 コメン ト: r. コメ ン ト2 一. 優先 度 ・1最優 先 1尋'1了1 ㌦. '. :. 期 限:23'07'231期 L. -「 晒`・iF一. 平 成22年 1一卜 拒此 ∠ごエF. 1平 成24年 謂. 凶 し∩ 」 璽占 ≡. 一 図9ア. プ リ改 善 の 最 終 段 階:NavigationControllerの. 一96(276)一. 普 通1. 匡. 限 な しへ1 1り. 」 コ. 6月 1'月. 8月. 1`UH舳 21日. 1∠z口 23日. __■LE■ 一 一. 凸 一. . 一 ■1. 採用等.
(13) iPhoneア. プ リ開 発 教 育 に関 す る一 考 察(北 門). 5.変. ブ ラ イ ア ン カ ー ニ ハ ン,ロ. ブ パ イ ク著. 数 に は わ か りや す い 名 前 を,ロ が,GUI部. 品 を 多 用 し,コ. 数 名 の工 夫. 「プ ロ グ ラ ミ ン グ 作 法 」 で は,「 グ ロ ー バ ル 変. ー カ ル 変 数 に は 短 い 名 前 を 」 と い う 作 法 が 述 べ られ て い る. ー ド補 完 の 充 実 し た 開 発 環 境 で は,GUI部. 品 の属 性 を正 確 に. 表 現 した長 い 変 数 名 の方 が プ ロ グ ラ ム の理 解 や バ グ発 生 の 低 減 に役 立 っ こ とが わ か った。 以 下 に そ の具 体 例 を示 す 。 初 期 のToDoViewController.h @interfaceToDoViewController:UIViewController{ IBOutletUITextField*task;//タ. ス ク 入 力. IBOutletUISegmentedControl*segPriority;//優. 先 順 位 選 択. IBOutletUILabel*dueDateLabel;//期. 限 選 択 結 果. IBOutletUIDatePicker*dueDate;//期. 限 選 択. NSManagedObject*todo;//ToDoテ. ー ブ ル オ ブ ジ ェ ク ト. RootViewController*rootController;//RootViewController } (途 中 省 略) @end. 改 善 後 のToDoViewController.h. @interfaceToDoViewController:UIViewController{ IBOutletUITextField*taskTextField;//タ. ス ク 入 力. IBOutletUITextField*commentTextField;//コ. メ ン ト入 力. IBOutletUISegmentedControl*prioritySegControl;//優 IBOutletUILabel*dueDateLabel;//期. 先 順 位 選 択 限 選 択 結 果. IBOutletUIDatePicker*dueDatePicker;//期. 限 選 択. NSManagedObject*todoManagedObject;//ToDoテ. ー ブ ル オ ブ ジ ェ ク. ト. RootViewController*rootViewController;//RootViewController } (途 中 省 略) @end. た と え ば,初. 期 段 階 の 「IBOutletUITextField*task;」. UITextField*taskTextField;」 を 処 理 す る 場 合,入. 文 は,最. 終 段 階 で は 「IBOutlet. 文 の よ う に 変 更 し て い る。 こ れ は,プ. ロ グ ラ ム内 の変 数. 力 元 の コ ン トロ ー ル を 明 確 に して お く方 が バ グ の 発 生 が 少 な い か らで. あ る 。 す な わ ち,taskと と い う変 数 は,TextFieldか. い う 変 数 が ど の デ ー タ を 表 す か 不 明 確 で あ る が,taskTextField ら入 力 さ れ た デ ー タ を 保 持 す る変 数 で あ る こ と が 明 確 に 表 現. で き て い る 。 こ の よ う に 各 入 力 元 の コ ン トロ ー ル 名 と 関 連 付 け を 行 っ た 変 数 名 に して お く と,プ. ロ グ ラ ム の 可 読 性 が 向 上 し,バ. グ の発 生 を抑 え る こ とが で き る。 こ の よ う な プ ロ グ. ラ ミ ン グ ス タ イ ル の 工 夫 も教 育 効 果 に 大 き く影 響 す る 。 一97(277)一.
(14) 第58巻. 図10ToDoViewController.xibの. 図10はToDoViewController.xibの iPhoneに. 第2号. 各 コ ン トロ ー ル と 変 数 名 の 対 応 例. 各 コ ン ト ロ ー ル と 変 数 名 を 対 応 さ せ た 例 で あ る。. は 豊 富 な ユ ー ザ ー イ ン タ ー フ ェ ー ス 部 品 が 準 備 さ れ て お り,魅. を 簡 単 に 作 成 す る こ と が で き る 。SegmentControlは,複. 力 的 な操 作 画 面. 数 の選 択 肢 か らひ とっ を選 ぶ と. き に 使 用 で き る 複 数 区 画 の コ ン ト ロ ー ル で あ る。 ま た,DatePickerは. 月 ・日 付 ・年 の 各. ロ ー タ ー を 回 転 さ せ て 日 付 を 入 力 す る コ ン トロ ー ル で あ る 。 ま た,todoManagedObjectはToDoテ. ー ブ ル 名 に 対 応 し た 変 数 名 で,ToDoテ. ーブルの. コ ピ ー へ の 参 照 を 保 存 し て い る。rootViewControllerはRootViewControllerプ へ の 参 照 を 保 存 し,他 こ の よ う に,各 と で,プ. プ ロ グ ラ ム の メ ソ ッ ドを 呼 び 出 す の に 使 用 して い る 。. コ ン トロ ー ル の 名 称 や オ ブ ジ ェ ク トへ の 参 照 に 対 応 し た 変 数 名 を 作 る こ. ロ グ ラ ム の 可 読 性 が 向 上 し,バ. 6.iPhoneア. 表3はiPhoneア 第1章. ログ ラム. グ の発 生 を抑 制 す る こ とが 期 待 で き る。. プ リ開 発 コ ー ス の 構 成. プ リ開 発 コ ー ス の 目次 を 示 し て い る。. か ら13章 ま で が 基 本 ス テ ッ プ で あ る。 第2章. と 第3章. のHelloWorldフ. で 開 発 環 境 の 基 本 的 な 使 用 方 法 が 修 得 で き る。 第4章. と 第5章. でObjective-Cの. 定 義 方 法 と メ ソ ッ ドに っ い て 学 習 す る 。 第6章. クラスの. か ら第12章 で イ ン タ ー フ ェ ー ス ビ ル ダ で 用. い る コ ン ト ロ ー ル の 基 本 的 な プ ロ グ ラ ミ ン グ 方 法 に っ い て 学 習 で き る 。 第10章 一98(278)一. ゜ロ グ ラ ム. のBMIと.
(15) iPhoneア. プ リ開 発 教 育 に関 す る一 考 察(北 門). 寿 命 計 算 で は ひ と っ の ま と ま っ た ア プ リ に っ い て の 開 発 と テ ス トの 全 体 像 を 把 握 す る こ と が で き る 。 第14章. と 第15章. でTableViewを. 学 習 し,第17章. か ら第21章. い た デ ー タ ベ ー ス ア フ゜リ ケ ー シ ョ ン を 学 習 す る。 こ こ で は,MVCモ る デ ー タ ベ ー ス モ デ ラ ー を 修 得 す る 。 第19章 紹 介 して い る。 第20章. のPhoneBook2や. でCoreDataを デ ル の"M"に. で はNavigationControllerの. 第21章. のToDoリ. 用 あた. 基 本的例題 を. ス トで は 実 際 の 使 用 に 耐 え る. ア プ リ を 作 成 す る 。 第22章 で は 実 機 テ ス トの た め の 手 順 を 紹 介 して い る 。. 表3iPhoneア. プ リ開 発 コ ー ス の 目 次. 章 第1章. 目次 iPhoneア. プ リの基 礎 知 識. 第2章. プ ロ ジ ェ ク トの新 規 作 成. 第3章. HelloWorld. 第4章. Objective-C2.0入. 門(1)ク. ラ ス の構 造. 第5章. Objective-C2.0入. 門(2)メ. ソ ッ ドの 構 造. 第6章. XIB(XMLInterfaceBuilder). 第7章. SliderTest. 第8章. TextFieldTest. 第9章. SimpleCal(単. 第10章. BMIと. 第11章. DatePicker. 第12章. AlertView. 第13章. ModalView. 第14章. TableView. 第15章. MyTable(セ. ク シ ョ ン を 使 っ た テ ー ブ ル). 第16章. TableViewプ. ロ グ ラ ミン グの ポ イ ン ト. 第17章. PhoneBook1. 第18章. CoreData. 第19章. Navigation-basedApplicationの. 第20章. PhoneBook2. 第21章. ToDoリ. 第22章. 認 証 の取 得 と実 機 で の実 行 テ ス ト. 第23章. TableViewベ. 第23章. 寿 命 計 算(本 格 的 な ア プ リ). ス. は 付 録 で,自. 理 解 す る こ と で,応. 純 な 電 卓 プ ロ グ ラ ム). 基 本. ト. ー ス+CoreDataア. プ リ. 自動 生 成 プ ロ グ ラ ム リス ト. 動 生 成 さ れ る プ ロ グ ラ ム の リ ス トを 添 付 して い る 。 こ の リ ス トを. 用 範 囲 の 広 いiPhoneア. プ リの 構 造 と拡 張 方 法 の 基 礎 が 修 得 で き る。. 一99(279)一.
(16) 第58巻. 7.教. iPhoneア. 育環境 について. プ リ 開 発 コ ー ス 教 育 の 実 施 段 階 に お い て はiMacを30台. る 。 先 行 的 に 導 入 し た 研 究 室 の4台 ハ ー ドデ ィ ス ク を2分 る)を. 第2号. のMacBookに. つ い て はBootCampでMacBookの. 割 し,MacOSXとWindows7(デ. フ ォ ル トの 起 動OSと. イ ン ス トー ル して デ ュ ア ル ブ ー トで き る よ う に して い る。iPhoneア. ス で はMacOSXを. 使 用 し,シ. 入 し たPCを. 有 効 に 活 用 す る こ と が で き る 。MacBookの. も の と 異 な る が,大. や す い 。 ま た,iPhoneア. 利. ブ゜リ開 発 コ ー ス 用 に 導. キ ー 配 列 が 通 常 の 標 準Windows. わ. り. に. 間 に わ た り少 人 数 教 育 で 改 善 し て き たiPhoneア. に っ い て 述 べ た 。iPhoneア. プ リ開 発 コ ー. き な 混 乱 は 発 生 して い な い 。. 8.お. 本 稿 で は2年. して い. ス テ ム 技 術 特 論 な ど の 他 の コ ー ス で はWindows7を. 用 す る こ と が 多 い 。 こ の よ う な 構 成 と す る こ と に よ り,iPhoneア. PCの. 程 度 導 入 す る予 定 で あ. プ リ開 発 環 境 はMVCモ プ リ開 発 に は3っ. プ リ開 発 教 育 方 法 の 研 究. デルに対応 させて理解 す るとわか り. の ハ ー ドル が あ り,こ. 的 に ス キ ル が 向 上 す る 。 開 発 プ ロ セ ス を 理 解 し,実. れ ら を 修 得 す る と飛 躍. 機 テ ス トを 通 じて ユ ー ザ ー イ ン タ ー. フ ェ ー ス が 改 善 さ れ て い く こ と も理 解 して お く必 要 が あ る 。 プ ロ グ ラ ミ ン グ 作 法 に っ い て は,入. 力 コ ン トロ ー ル や オ ブ ジ ェ ク トに 対 応 し た 変 数 を 定 義 す る こ と が プ ロ グ ラ ム の 可 読. 性 を 向 上 さ せ,バ iPhoneア. グ の 発 生 を 抑 制 して 教 育 効 果 が 高 い こ と に 触 れ た 。. プ リ開 発 コ ー ス の サ ン プ ル ア フ゜リケ ー シ ョ ン を 開 発 し始 め た と き,初. 歩 の レ. ベ ル の プ ロ グ ラ ム か ら中 級 レ ベ ル の デ ー タ ベ ー ス を 利 用 し た ビ ジ ネ ス ア プ リ ケ ー シ ョ ン ま で を 網 羅 す る 書 籍 が な い こ と に 驚 い た 。 特 に,デ 日 本 語 の 書 籍 が な く,本iPhoneア い る 。 来 年 度 は,本iPhoneア. ー タ ベ ー ス ア プ リケ ー シ ョ ンに特 化 した. プ リ開 発 コ ー ス は 非 常 に ユ ニ ー ク な 内 容 だ と 自 負 して ブ゜リ開 発 コ ー ス をITビ. き た い。. 一100(280)一. ジネ ス 特 修 実 習 と して 提 供 して い.
(17) iPhoneア. プ リ開 発 教 育 に関 す る一 考 察(北 門). 参. Apple(2010),〆1勿16∠1ηo襯c6∫ Apple(2010),Co7召Z)α Appleホ. ガPσ翻1ψ18κ 如P7097α. 考. 文. 献. のノ ηo'6∫,iTunes,Podcast.. 〃z〃zガ 刀gG忽46. ー ム ペ ー ジ(2011.6),http://www.apple.com/jp/iphone/apps-for-iphone/#heroOverview. Apple(2010),ガOSレ. 勿 卿Coη'70〃67プ. ロ グ ラ ミ ン グ ガ イ. MichalePrivat,RobertWarner(2011),P70Co76∠)α PatrickAlessi(2010),.P7碗 StanfordUniversity(2009),ガ 赤 松 正 行(2009)『iPhoneSDKの 萩 原 剛 志(2008)「Objective-C2.0」. ド. ♂ α力7ガOS,Apress. ∬ ゴo照1〃)乃o麗. 伽 ゴ ガP掘Dα`α. 伽6.4勿1磁'加pプogz伽. ∫)勿 ηθ、4ρρ1ガcα'ガoηZ)ω61ρ ヵ辮6雇 教 科 書 」 秀 和. ごZ.)一α8),iTunesU. シ ス テ ム. ソ フ トバ ン ク ク リエ イ テ ィ ブ. 木 下 誠(2009)『iPhoneSDK3プ. ロ グ ラ ミ ン グ 大 全 」 ア ス キ ー メ デ ィ ア ワ ー ク ス. 倉 下 忠 憲(2010)『EVERNOTE「. 超 」 仕 事 術 」C&R研. 柴 田 文 彦 他(2009)『iPhoneSDKプ 早 瀬 敦 他(2010)『EVERNOTEの. 究 所. ロ グ ラ ミ ン グ 実 践 ガ イ 教 科 書 』 タ ツ ミ ム ッ ク. 一101(281)一. ド 』BNN. 競%g,Wrox.
(18)
関連したドキュメント
また、チベット仏教系統のものとしては、フランスのド ルド ーニュにニン マ派の Dilgo Khyentse Rinpoche
わが国において1999年に制定されたいわゆる児童ポルノ法 1) は、対償を供 与する等して行う児童
介護問題研究は、介護者の負担軽減を目的とし、負担 に影響する要因やストレスを追究するが、普遍的結論を
((.; ders, Meinungsverschiedenheiten zwischen minderjähriger Mutter und Vormund, JAmt
Zeuner, Wolf-Rainer, Die Höhe des Schadensersatzes bei schuldhafter Nichtverzinsung der vom Mieter gezahlten Kaution, ZMR, 1((0,
第1款 手続開始前債権と手続開始後債権の区別 第2款 債権の移転と倒産手続との関係 第3款 第2節の小括(以上、本誌89巻1号)..
[r]
[r]