ポートフォリオとして、モバイルアプリを作成しました。



#はじめに
##記事の目的
**ポートフォリオ用に作成したモバイルアプリケーションの紹介記事です**
##使用技術
**AndroidStudio**
**Kotrin**
**TwitterApi**
**Twitterアプリケーション**
**SQlite**

##アプリ概要
**Twitterと連携し本アプリに事前に登録しているメッセージをタップ一つランダムか選択してツイートする事ができるアプリです。**



![icon_inko.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/8011335f-28c3-4ad3-02be-d8995aad0a5f.png)

▶︎ [こちらのリンクで公開中です。](https://play.google.com/store/apps/details?id=com.originalapp.tweetcontentretention)

#作成アプリの説明
***アプリについての画面レイアウトとアプリ機能について説明します***

##今回作成した2画面のレイアウト
**①登録しているメッセージをスクロールして確認できる画面です。**
　この画面では表示しているメッセージをランダムでツイートすることもできます。
<img width="400" alt="スクロールgif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/9b809d0f-5ba9-5e84-bb7b-189519fa9269.gif">

**②登録しているメッセージの編集と登録ができる画面です。**
　この画面では表示しているメッセージをツイートすることもできます。
<img width="400" alt="スクロールgif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/b372468b-c3aa-23bc-65e8-7127ea83ed42.gif">


##アプリの機能##
**①ランダムツイート機能**
画面下のボタンをクリックすると表示しているメッセージをランダムでツイートすることができます
<img width="400" alt="ツイート機能gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/98a71a4a-5cfc-52bc-f504-30e97c269153.gif">

**②ツイート機能**
画面下のボタンをクリックすると表示しているメッセージをツイートすることができます
<img width="400" alt="ツイート機能gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/5940e9c0-586e-5537-2955-8dd9d8069228.gif">

**③アカウント切り替え機能**
画面右上のメニューアイコンをクリックし、アカウントを切り替えることができます。
※初めてアプリを使用する際ははアカウント認証画面が自動で起動します。
<img width="400" alt="ツイート機能gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/7f665af8-fcca-76f4-21ef-cc164978b5bb.gif">


**ーーー画面レイアウトとアプリ機能についての説明は以上になります。ーーー**

#こだわった点
##メッセージリスト
メッセージ一覧とランダムでツイート出来るボタンを一緒の画面に表示し
メッセージ一覧のみがスクロールできるようにしたかった。
<img width="400" alt="ツイート機能gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/db38fd94-488e-9c7d-07b4-3ce591c5e43b.gif">

##ダイアログメッセージ
Twitterの仕様とアプリの仕様の為にいくつかの制限を儲けた。
制限に引っかかった際には使用ユーザーに分かるように
ポップアップを表示するように設定した。

**Twitterの仕様上の制限①**
２回続けて全く同じ内容をツイートを禁止
<img width="400" alt="ダイアログ１" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/334ee94f-60a3-c667-dd0a-3297af5c4c9d.jpeg">

**Twitterの仕様上の制限②**
一日のツイート数の制限があるので、
一度ツイートしたら再ツイート出来るまで一分かかる
<img width="400" alt="ダイアログ２" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/2a171ab5-6ffc-fd4a-e5f9-374cdd919e85.jpeg">


**②アプリの仕様上の制限**
ネットワークエラー
<img width="400" alt="ダイアログ３" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1232534/a067ac16-f1c4-ad94-9866-3cc49b5eb321.jpeg">

#最後に

##本アプリを作成するうえで参考にした記事を記載します#

**非同期処理について**
https://qiita.com/ryosuketter/items/dd467f827c1b93a74d76

**Coroutineについて**
https://qiita.com/AtsushiUemura/items/fa3e84a9f6eacd509205

**Twitter4Jについて**
https://qiita.com/yuta-tsussy/items/e6ff450667fcaeffa2ed

**OAuth認証について**
https://qiita.com/TakahikoKawasaki/items/200951e5b5929f840a1f
https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be

**Fragmentについて**
https://qiita.com/Reyurnible/items/dffd70144da213e1208b

**ListViewについて**
https://qiita.com/ksugawara61/items/2d63f0be279a94b74550

こポートフォリオ用に作成したモバイルアプリケーションの説明を終わります。
今後も本アプリには機能を追加し、記事も更新していく予定です。
最後まで目を通しいただきありがとうございます。

以上。