Submit Search
Upload
SYSTEMI勉強会まとめ資料(日記アプリ作成)
•
Download as PPTX, PDF
•
0 likes
•
183 views
Y
YoshikiWatanabe1
Follow
2018年度における株式会社システムアイの勉強会資料の一部です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 19
Download now
Recommended
Storybook web-and-circleci
Storybook web-and-circleci
Jesse Katsumata
Gradleプラグインを作成してみた
Gradleプラグインを作成してみた
shinya sakemoto
React native vol3
React native vol3
dcubeio
研修成果プレゼン資料
研修成果プレゼン資料
Wataru Yamaura
Google PageSpeed Insights 得点向上のための改善 - VASILY フロントエンドインターン 成果報告-
Google PageSpeed Insights 得点向上のための改善 - VASILY フロントエンドインターン 成果報告-
Shizuma Kubo
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
Ryosuke Hara
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
Kazuhiro Yoshimoto
React NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみよう
dcubeio
Recommended
Storybook web-and-circleci
Storybook web-and-circleci
Jesse Katsumata
Gradleプラグインを作成してみた
Gradleプラグインを作成してみた
shinya sakemoto
React native vol3
React native vol3
dcubeio
研修成果プレゼン資料
研修成果プレゼン資料
Wataru Yamaura
Google PageSpeed Insights 得点向上のための改善 - VASILY フロントエンドインターン 成果報告-
Google PageSpeed Insights 得点向上のための改善 - VASILY フロントエンドインターン 成果報告-
Shizuma Kubo
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
Ryosuke Hara
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
Kazuhiro Yoshimoto
React NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみよう
dcubeio
react-native.pdf
react-native.pdf
DaikiSato10
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
UnicastWS vol.2
UnicastWS vol.2
Unicast Inc.
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
React Nativeで考えるクロスプラットフォーム開発
React Nativeで考えるクロスプラットフォーム開発
yuichi kubota
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
健太 田上
GraphQL with React
GraphQL with React
Taketoshi 青野健利
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
Kanako Kobayashi
デブサミ 2013 日本App Inventorユーザー会
デブサミ 2013 日本App Inventorユーザー会
Takeaki Tada
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介
CASAREAL, Inc.
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
MasashiOtsuka1
Testing react-native with storybook on web
Testing react-native with storybook on web
Jesse Katsumata
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)
YoshikiWatanabe1
Androidプログラミング入門
Androidプログラミング入門
OESF Education
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
iOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips まで
Yuki Tanabe
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
Google Cloud Platform - Japan
More Related Content
Similar to SYSTEMI勉強会まとめ資料(日記アプリ作成)
react-native.pdf
react-native.pdf
DaikiSato10
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
UnicastWS vol.2
UnicastWS vol.2
Unicast Inc.
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
React Nativeで考えるクロスプラットフォーム開発
React Nativeで考えるクロスプラットフォーム開発
yuichi kubota
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
健太 田上
GraphQL with React
GraphQL with React
Taketoshi 青野健利
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
Kanako Kobayashi
デブサミ 2013 日本App Inventorユーザー会
デブサミ 2013 日本App Inventorユーザー会
Takeaki Tada
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介
CASAREAL, Inc.
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
MasashiOtsuka1
Testing react-native with storybook on web
Testing react-native with storybook on web
Jesse Katsumata
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)
YoshikiWatanabe1
Androidプログラミング入門
Androidプログラミング入門
OESF Education
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
iOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips まで
Yuki Tanabe
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
Google Cloud Platform - Japan
Similar to SYSTEMI勉強会まとめ資料(日記アプリ作成)
(20)
react-native.pdf
react-native.pdf
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
UnicastWS vol.2
UnicastWS vol.2
React を導入したフロントエンド開発
React を導入したフロントエンド開発
React Nativeで考えるクロスプラットフォーム開発
React Nativeで考えるクロスプラットフォーム開発
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
GraphQL with React
GraphQL with React
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
デブサミ 2013 日本App Inventorユーザー会
デブサミ 2013 日本App Inventorユーザー会
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
Testing react-native with storybook on web
Testing react-native with storybook on web
SYSTEMI勉強会まとめ資料(React基礎まとめ)
SYSTEMI勉強会まとめ資料(React基礎まとめ)
Androidプログラミング入門
Androidプログラミング入門
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
iOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips まで
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
SYSTEMI勉強会まとめ資料(日記アプリ作成)
1.
勉強会まとめ資料 株式会社システムアイ 日記アプリの作成
2.
前書き 【概要】 このスライドでは、ReactNativeの独学で勉強して結果を整理し、簡単な日記アプリを作成していきます。 ReactNativeはReactベースでスマホアプリを作成可能なフレームワークです。 JavaScriptとReactの知識があれば作成可能なため、Reactの知識があれば学習コストが少なくてすみます。 【対象者】 このスライドはプログラミングの経験はあるが、ReactNativeの経験がない人が対象者になります。 【サンプルソース】 サンプルソースはGitHubに公開しています。 https://github.com/2018SYSTEMI34/sample_source/tree/master/react-native/sample- app/dairy
3.
目次 1. 日記アプリ概要 2. プロジェクト作成 3.
日記アプリ実装 4. まとめ
4.
1-1.日記アプリ概要 【日記アプリの画面構成】 ホーム 登録 【ホーム画面】 日記 日記 日記 【更新画面】 【登録画面】 ホーム 登録 【ホーム画面】 日記を一覧表示する画面です。 【更新画面】 日記の内容を更新する画面です。 【登録画面】 日記の内容を新規登録する画面です。 以上、3つの画面を作成していきます。
5.
1-2.日記アプリ概要 【日記アプリのデータベース】 このアプリではSQLliteというアプリに組み込むRDBを使用して、データを保存していきます。 【テーブル構成】 物理名 概要 id primary
key date 日記の記入日 titile 日記のタイトル body 日記の内容
6.
2-1.プロジェクト作成 npm install –g
expo-cli yarn add –global expo-cli 【前提事項】 Node.jsがインストールされ、npmまたはyarnのパッケージマネージャがある前提です。 このサンプルアプリでは、Expoと言われる開発/build環境を導入して、 ReactNativeのスマホアプリを開発していきます。 【Expo導入コマンド】 npmまたはyarnコマンドからexpoを導入してください。
7.
2-2.プロジェクト作成 expo init dairy tabs
// tabsを選択してください cd dairy 【Expoコマンドでプロジェクト作成】 以下のコマンドでプロジェクトを作成してください。 プロジェクトの作成するときにtabsとblankを選択可能です。 今回はtabsを選択して、Navigationのサンプルソースを改修しながらアプリを作成してきます。
8.
2-3.プロジェクト作成 expo start 【プロジェクト起動&初期画面の表示】 以下のコマンドでプロジェクトを起動して、QRコードが表示されれば成功です。 【スマートフォンでアプリ起動】 Expoの機能を利用する場合、expoの会員登録とスマートフォンののアプリインストールが必要です。 以下のURLにアクセスして、expoの会員登録をお願いいたします。 https://expo.io/login
9.
2-4.プロジェクト作成 【Expoの利点】 ReactNativeのアプリは、Expoを利用する以外にも方法がありますが、Expoを使用するメリットは以下になります。 ・実機でのテストがQRを読み込むことですぐにできる。 ・SQLLiteなど様々なモジュールが最初からインストールされているため、手間が少ない。 日記アプリのような簡単なアプリは最小の労力で作成可能なため、 特殊な要件がなければExpoで機能を十分に表現できます。
10.
3-1.日記アプリ実装 【日記アプリのプログラム一覧】 この日記アプリで修正もしくは新規で作成するプログラムファイルを一覧化します。 dairy/ ┝navigation/ ┝ MainTabNavigator.js ┝ screens/ ┝
HomeScreen.js ┝ RegistrationScreen.js ┝ UpdateScreen.js 修正 新規作成 新規作成 新規作成
11.
3-2.日記アプリ実装 【 MainTabNavigator.js 】 このプログラムはアプリ下部に表示されるツールバーを作成しています。 import
{ createStackNavigator, createBottomTabNavigator } from 'react-navigation’; import HomeScreen from '../screens/HomeScreen’; import RegistrationScreen from '../screens/RegistrationScreen’; import UpdateScreen from '../screens/UpdateScreen’; /** * ホーム画面の読み込み */ const HomeStack = createStackNavigator({ Update: UpdateScreen, Home: HomeScreen },{ initialRouteName: 'Home', mode:'card' }); HomeStack.navigationOptions = { tabBarLabel: 'ホーム', }; /** * 登録画面の読み込み */ const RegisrationStack = createStackNavigator({ Settings: RegistrationScreen, }); RegisrationStack.navigationOptions = { tabBarLabel: '登録', }; /** * Tab Navigation 管理部品 */ export default createBottomTabNavigator( { HomeStack, RegisrationStack, }, { initialRouteName: 'HomeStack’ } ); このアプリではreact-navigationを使用して、画面遷移を実現しています。 ポイント ポイント
12.
3-3.日記アプリ実装 【 MainTabNavigator.js のポイント】 const
HomeStack = createStackNavigator({ Update: UpdateScreen, Home: HomeScreen },{ initialRouteName: 'Home', mode:'card' }); React-navigationでは、stackを作成することで、react-navigation上で画面遷移をさせることが 可能になります。 i** * Tab Navigation 管理部品 */ export default createBottomTabNavigator( { HomeStack, RegisrationStack, }, { initialRouteName: 'HomeStack’ } ); React-navigationでは、作成したstackを用いてツールバーを作成していきます。 Stackを指定した数だけメニューができていきます。 このような形で表示されます。
13.
3-4.日記アプリ実装 【 HomeScreen.js 】 このプログラムは日記を一覧化して表示します。 ソースコードが長いため、GitHubを参照してください。 https://github.com/2018SYSTEMI34/sample_source/blob/master/react-native/sample- app/dairy/screens/HomeScreen.js
14.
3-5.日記アプリ実装 【HomeScreen.jsのポイント 】 SQLliteのデータベースを定義しています。 画面表示するときに日記のレコードをすべて取得します。 const db
= SQLite.openDatabase('dairy.db'); componentDidMount = () => { // タブ押下ごとにイベント発生させる this.props.navigation.addListener('didFocus', () => this._didFocus()); } /** * タブ押下時のイベント定義 */ _didFocus = () => { this.selectAllDaireies() } // 日記の件数を全件取得 selectAllDaireies = () => { db.transaction( tx => { tx.executeSql('select * from dairies order by date desc;', [], (_, { rows }) => { this.setState({list:rows._array}) }); } ) }
15.
3-6.日記アプリ実装 【HomeScreen.js のポイント】 React native
の標準機能Flatlistを用いて、日記を一覧化しています。 render() { return( <View style = {style.container}> <FlatList data={this.state.list} style={style.flatList} keyExtractor={(item,index) => (item.id)} renderItem={({item}) => this.flatListRenderItem(item)}/> </View> ) } <TouchableOpacity onPress={() => this.props.navigation.navigate('Update',{item})}> <View style={style.line}> <View style={style.date}> <Text style={style.text}>{date.getFullYear()}</Text> <Text style={style.text}>{date.getMonth()+1}/{date.getDate()}</Text> </View> <View style={style.title}> <Text style={style.titileText}>{item.title}</Text> </View> </View> </TouchableOpacity> TouchableOpacity は画面タッチ時に何らかのアクションをさせるコンポーネントです。 この場合、タッチ時にnavigateの関数を使用して画面を遷移させています。 FlatList TouchableOpacity
16.
3-7.日記アプリ実装 【 RegistrationScreen.js 】 このプログラムは日記をデータベースに登録します。 ソースコードが長いため、GitHubを参照してください。 https://github.com/2018SYSTEMI34/sample_source/blob/master/react-native/sample- app/dairy/screens/RegistrationScreen.js
17.
3-8.日記アプリ実装 【 RegistrationScreen.jsのポイント 】 画面表示時に日記のテーブルを作成しています。 //
テーブルの作成 componentDidMount() { db.transaction( tx => { tx.executeSql( 'create table if not exists dairies (id integer primary key autoincrement not null, date numeric, title text, body text);’ ); } ); } <DateTimePicker isVisible={this.state.isDateTimePickerVisible} onConfirm={this.handleDatePicked} onCancel={this.hideDateTimePicker} /> DatePickerの部品はReact標準のものは使いにくいため、外部のモジュールをインストールして使用しています。 react-native-modal-datetime-pickerをnpmまたはyarnでインストールしてくだい。
18.
3-9.日記アプリ実装 【 UpdateScreen.js 】 このプログラムは日記を更新します。 ソースコードが長いため、GitHubを参照してください。 https://github.com/2018SYSTEMI34/sample_source/blob/master/react-native/sample- app/dairy/screens/UpdateScreen.js このソースコードはほぼRegistraionScreen.jsと同じため説明は省略します。
19.
まとめ 【まとめ】 ReactNativeでのアプリ作成の強みはiosとandroidの両方で動くことが強みとされています。 しかし、ReactNativeの標準コンポーネントはandroidでしか動作しない部品などが存在しています。 今回の日記アプリなど簡単なものならよいのですが、複雑なものになるとかゆいところに手が届かない状態です。 また、ReactNativeでは個人が作ったようなコンポーネントが多数を占めていて、開発の効率化させる場合、 このような部品をいれなければならないケースが存在します。 そういった意味でも、業務で使用する場合はReactNativeを使用する難しさは感じました
Download now