In this tutorial, you will create a simple iOS application using AWS Amplify, a set of tools and serverless services in the cloud. As you complete each module, you will initialize a local app using the Amplify Command Line Interface (Amplify CLI), add user authentication, add a GraphQL API and a database to store your data, and update your app to store images.
iOS は タッチパネル式端末用に最適化された OS で ユーザが端末を操作しやすいように GUI の仕組みが提供されています。iOS アプリ開発では主に GUI を操作するプログラムを実装していきます。iOS の GUI プログラムはイベント駆動型と言われるプログラミング方式に則ってプログラムを実装していきます。 iOS に限らず Mac OS 用のアプリ開発でも同じようにイベント駆動型のプログラムを実装しますが、 iOS はタッチパネル式モバイル端末用の OS という性質上 Mac OS のイベント駆動プログラムと少し違うところがあります。 この記事では iOS のイベント駆動の仕組みを「ライフサイクルイベント」と「ユーザアクションイベント」にわけて説明します。iOS のイベント駆動がどういったものなのか理解してその仕組みの上で自由にプログラムできるようになることが目的です。 イベント
さて、飽きもせずにiPad Proの11インチ(セルラーモデルの256GB)を購入しました。あと専用ハードウェアキーボードとしてSmart Keyboard Folioも一緒に。以前使っていた10.5インチiPad Proと比較すると、本体も実に良い感じだし、キーボードも地味に色々改良されていて、これならギリギリ膝の上でも使えます(10.5インチは無理だった…)。 コネクタもUSB Type-Cになったおかげで、Macbook用のVGAやHDMIアダプタがそのまま使えて、さらにそこに有線のUSB Ethernetとか挿すと、こちらも普通に使えてしまいます。これは良いですね。 そして、可能な限りiPadで全てを済ませ、できるだけMacbook系に頼らない体制にしていきたいと考えている上で、やはりSSHクライアントは必要です。同じ理由で以前10.5インチを買ったときに以下の記事を書いたのですが
こんにちは。技術部モバイル基盤グループの @giginet です。 fastlaneのCore Contributorを務めており、 社内ではプロのコードサイン解決者 *1 としての職務経験を積んでいます。 今回はクックパッドでのfastlaneを使ったiOSアプリのサブミット自動化と、証明書管理についての事例を紹介したいと思います。 CIによるiOSアプリサブミットの自動化 クックパッドでは、昨年の春頃よりiOSアプリのサブミットをチャットbot経由で行っています。 このように、Slack上でサブミットジョブを実行すると、CIでアプリがビルドされ、審査提出までを完全自動で行ってくれます。 審査提出には、ビルドや処理待ちの時間を含めると多くの工数がかかり、人為的なミスが起こる可能性もありましたが、 完全な自動化により、高頻度のアプリリリースに耐えられるようになりました。 アーキテクチャは以
iOSとAndroidでは、プッシュ通知に異なる仕組みが採用されています。iOSで使われているAPNsとAndroidで使用されるGCMそれぞれの仕組みと実装手順について解説します。両者の違いや特徴を正しく把握することで、より利便性の高いユーザーに愛されるアプリの開発が可能になるはずです。 iOSで使用されるAPNsとは? iOSでは、プッシュ通知にAPNsと呼ばれる仕組みが採用されています。この方法では、ユーザーがアプリのプッシュ通知を許可すると、トークンと呼ばれるデータがAppleのサーバーへ送信されます。このトークンは他のiPhoneとは重複することのない端末ごとに固有の情報であり、開発者はトークンを利用してバッジやダイアログ、バナーといった方法でユーザーのiPhoneに通知を行うのです。 トークンは固有の情報であるとはいえ、ユーザーの住所や氏名、電話番号といった個人情報は含んでいな
ひとつ注意点ですが、Swiftは書き方の自由度が比較的高いので、チーム開発をする場合は、あらかじめコーディング規約を共有しておいた方が良いでしょう。 Swiftでの命名や慣例のほか、さまざまな指針がSwift.orgにある「API Design Guidelines」にまとめられています。興味のある方は目を通してみてください。 Swift.org - API Design Guidelines インタラクティブ環境でSwiftを触ってみよう 早速ですが、Swiftを触って動作させてみましょう。Swiftはコンパイラ言語でありながら、インタラクティブ(対話的)に実行しながら動作を確認することができます。Swiftに慣れるには、このインタラクティブ環境でいろいろと動作させてみるのが手っ取り早いです。 インタラクティブにSwiftを実行するには、ターミナル(コマンドライン)のREPL(レプル)を
1 はじめに AVFoundationで、AVCaptureVideoDataOutputを出力に指定すると、毎秒30フレームほどの画像が取得できます。 この画像から矩形を検出し、元の長方形に整形する「名刺撮影用のカメラ」みたいなものを作ってみました。 人が、画像から名刺の位置を識別するのは簡単ですが、プログラムでやるとなると、やはり少し色々な工夫が必要でした。 本記事では、その辺を紹介させて頂きたいと思います。なお、AVFounndationや、OpenCVの使用方法については、以前の記事と重複するため、詳しくはそちらをご参照下さい。 [iOS] AVFundationを使用して、「ビデオ録画」や「連写カメラ」や「QRコードリーダー」や「バーコードリーダー」を作ってみた [iOS] AVFoundation+OpenCVで劇画調カメラを作ってみた 2 2値化 OpenCVでは、findC
こんにちは。中山です。 今日は、OCR機能(光学文字認識機能。つまり、画像から文字を識別して、文字データとして取り出す機能)を、iOS アプリに組み込んでみたいと思います。 しかも無料で。 サンプルアプリ ソースファイルの入手 今回も実際に動くサンプルアプリを作ってみました。 サンプルアプリのソースファイルは、こちらから取得することができます。 サンプルアプリの実行 XCode でソースファイルを開いて、iPad のシミュレータなどでアプリを実行します。 このサンプルアプリは、iOS 7.0 以降の iPad をターゲットにしています。 アプリを起動するとすぐに、画面上に表示されている画像の文字解析が始まります。 以下のような文字を含む画像を解析して、 このような文字抽出結果が出力されます。 ソースファイル内の ViewController.m の10行目あたりを少し編集して、 // kI
ユーザーエージェントとは? ユーザーエージェント(User Agent)は、HTTPリクエストを行う際にリクエストを行う元(クライアント)の種類を特定するものです。 ユーザーエージェント (User agent)とは、利用者があるプロトコルに基づいてデータを利用する際に用いるソフトウェアまたはハードウェアのこと。 特にHTTPを用いてWorld Wide Webにアクセスする、ウェブブラウザなどのソフトウェアのこと。 ユーザーエージェント - Wikipedia モバイルアプリではAPIリクエストを行う際、HTTPリクエストヘッダの User-Agent を使ってユーザーエージェントの情報を送信します。ユーザーエージェントの情報は任意の文字列となりますが、特に決まりがないため、何をどのように設定すれば良いか迷ってしまいます。 そこで本記事では、ユーザーエージェントが果たす目的を考えつつユー
iPhone Xが発表されたわけですが、なにこのデザイナー泣かせの変態端末。 iPhoneのUI設計者グレッグ・クリスティが追い出されて、ジョナサン・アイヴがソフトウェア統括となったのが2014年。 iOS7のフラット化あたりから、どんどんとUI設計が置いてけぼりになった感がありましたが・・・ここにきてまたデザイナー泣かせの豪速球が。 ざっくりデザインガイドラインを読んでの、気になったところメモ。 画面サイズ サイズは従来のベースであった4.7インチの375pt x 667ptから、375 x 812ptに。縦方向に145pt追加された。 想定されるインパクト 表示可能な情報量が増える 縦スクロール系コンテンツのコンバージョンが増加 スクロールで隠れるナビゲーションの必要性が低下 画面上部のボタンのコンバージョンが低下 ゲームなどの全画面イラストに、黒枠が出たり、見切れたりする グラフィッ
1 はじめに iOS 11で追加されたARKitを利用した、AR巻尺の距離測定アプリ「AR Measure」がYoutubeに公開されています。 今回は、このようなアプリを作る方法について確認してみました。 本記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 2 現実世界の座標取得 下の写真は、クラスメソッド札幌オフィスのエントランスですが、スマフォののカメラで覗いて、画面上でタッチすると、そのポイントは、現実の世界では、赤い点を指していることになります。 ARKitを使用すると、カメラ画像に写っているスマフォ上の位置を指定すると、それに対応する現実世界の位置情報が取得できます。 この機能を利用すると、画面上で地点を指定し、その距離を計算することが可能になるということです
リリース済のアプリを開発する際、AppStoreから入れたアプリを上書きしてしまう問題の解決策です。 普段使いしているアプリの場合、開発用で上書きされるのは少しめんどくさいです。 今回はその回避策を書いてみます。 debugビルドとreleaseビルドでbundle idを変える まずはAppStoreから入れたアプリを上書きしないようにします。 最初にBuildSettingsでユーザー定義変数を追加します。 User-Definedに行が追加されるのでそこのデバッグにだけ接尾辞を追加します。 最後にInfo.plistのBundleIDで今追加した値を参照するようにすれば完了です。 これで開発中はリリース済アプリを上書きしなくなります。 デバッグとリリースでアプリ名も変えてみる これで2つを共存する事ができたのですが、そうするとどっちがデバッグ版かが分かりにくくなります。 分かりやすく
一覧画面のレイアウトは同じデータでも見せ方ひとつで雰囲気が変わってきます。リスト表示は画像+文字情報の組み合わせたような見せ方に対して、グリッド表示は画像をメインにしたケースが多く見受けられます。リスト表示よりグリッド表示の方がサムネイルなどの画像が大きく表示されるのではないでしょうか。今回はそんなリスト表示とグリット表示をボタンひとつで切り替えられるDisplaySwitcherを試してみました。 UICollectionViewのレイアウトとカスタムトランジションを実装しており、ライセンスはMITです。 Yalantis/DisplaySwitcher 検証環境 今回は下記環境で試しています。 Xcode 準備 導入 CocoaPodsで追加します。 platform :ios, '9.0' use_frameworks! target 'ターゲット名' do pod 'Display
iOS 11 から DeviceCheck が追加 iOS 11 から DeviceCheck というフレームワークが追加されることが発表されました。その名の通りデバイスをチェックするフレームワークで、デバイス〜開発者間のデータをサーバーサイドのビジネスロジックで利用できるといった機能を提供します。具体的にどういった機能なのか調べてみました。 本記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 DeviceCheck でできること 簡単にまとめると、デバイスごとにトークンを生成し、そのトークンを使ってデバイスごとのフラグ(2つまで)を保持することができます。例えば「アプリの初回起動時のみプレゼント」を実現するための初回起動判定用フラグなどに活用できます。 デバイス用の A
iOS Developer に登録されている開発用の実機リスト(デバイスリスト)は1年に1度更新して使っていないデバイスを削除する必要があるようです。 これをしないと、新しい iPhone を開発用に登録することができなくなります。 来年また慌てないように書いておきます。 この記事は、前回の記事「新しい iPhone を開発用に登録する手順」の補足です。 Certificates, Identifiers & Profiles を選んで、 Devices を選ぶと、 「+」ボタンがグレーアウトしていて押せないことがあります。この原因は、定期的にデバイスリストの更新をしなくてはならないのに更新できていないことにあります。iOS Developer では1年に1回、登録デバイスのメンテナンスが必要なようです。メンテナンスといってもたいしたことはなく、使わなくなったデバイスをリストから外すだけで
1.1. Swift について | Swift Published on 2015年12月10日 1.2. Swift ツアー | Swift Published on 2015年12月11日 1.2.1. シンプルな値 | Swift ツアー | Swift Published on 2015年12月12日 1.2.2. 制御フロー | Swift ツアー | Swift Published on 2015年12月13日 1.2.3. 関数とクロージャ | Swift ツアー | Swift Published on 2015年12月14日 1.2.4. オブジェクトとクラス | Swift ツアー | Swift Published on 2015年12月15日 1.2.5. 列挙型と構造体 | Swift ツアー | Swift Published on 2015年12月16日 1.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く