よちよちサンデープログラミングトップへ
##はじめに
デジタルサイネージアプリ「Sign!」(iOS版)は、iPadやiPhoneをシンプルなデジタルサイネージとして使うためのアプリです。
WebページやGoogleスライドで作ったスライドショーや、固定のテキストメッセージやTwitterへの投稿をティッカー(流れるテキスト)としてフルスクリーンかつノースリープで表示し続けるもので、複数のページをめくって切り替えられるものです。
そのため、例えば商品POP、レストランのメニュー、展示ブースの看板、電光掲示板などに使えます。
- アプリのダウンロードは、こちら。
本記事では、Sign!で実装している各機能をTipsとして解説します。
##開発・実行環境
Sign!は、以下の環境で開発・実行しています。
- 開発環境 : macOS、Xcode(9~10)、Swift(4~5)
- 実行環境 : iOS 11以上
##アプリの構成の概要
Sign!は、Webページやティッカーテキストを表示するためのWebビュー(WKWebView)が1画面に1つ表示されており、複数の画面をページめくり(UIPageViewController)で切り替えられるようになっています。
Webビューには、HTTPS(やHTTP)でアクセスできるWebページやWebスライドショー(Googleスライドなど)の他、文字列をティッカー表示するためにアプリ内部で保持する固定的なHTMLを表示します。
ティッカー表示する文字列としては、ユーザが入力した固定のテキストメッセージの他、Twitterのツイートも表示できます。ツイートは、特定のユーザ名やハッシュタグのものを定期的に検索し、最も新しいもの1つが表示されます。
また、アプリの画面下部には、広告(AdMob)が、画面サイズや向きに応じて異なるサイズで表示されます。
##実装している機能
本アプリを実現するために、以下の機能を実装しており、それぞれTipsとして解説していきます。
※リンクをクリックするとTips解説記事に飛びます。リンクされていない項目は、記事を鋭意作成中です。
- アプリ画面をフルスクリーン表示にする(ステータスバーを表示しない)
- アプリが起動している間、画面を表示し続ける(端末をスリープさせない)
- Webページを表示する(WKWebView)
- 文字列として定義したHTMLをWebページとして表示する(WKWebView)
- HTTP Webページを読み込めるようにする(WKWebView)
- Webページに組み込まれた音楽を鳴らせるようにする(WKWebView)
- アプリ画面に流れる文字列(ティッカー、マーキー)を表示する(WKWebView)
- Webページの読み込み待ちにインジケータ(くるくる、ナビゲータ)を表示する(WKNavigation)
- ページめくりで、表示する画面を切り替える(UIPageViewController)
- アプリ画面の長押しを検出する(UILongPressGestureRecognizer)
- ダイアログを表示する(UIAlertController)
- iPadでアクションシート(.actionSheet)が開かない問題に対処する(UIAlertController)
- ダイアログにテキスト入力欄を設ける(UIAlertController)
- ダイアログに設けたテキスト入力欄に入力された値を、ダイアログを閉じた後に利用する
- TwitterKitを組み込む
- Twitterにログインする(認証を受ける)、ログアウトする(TwitterKit)
- Twitterのツイートを取得する(TwitterKit)
- タイマーを使って、定期的に処理を行う(Timer)
- AdMob SDKを組み込む
- アプリ画面に広告を表示する(AdMob)
- アプリ画面の下部に、広告をレイアウトする
- ページをめくっても、広告が再読込されないように広告を配置する
- 表示する文字列を多言語対応する
- アプリのアイコンを設定する
- アプリの設定を保持する(UserDefaults)