寒川のアプリ開発者ブログ

美容師しながらアプリ開発してる人のブログです

開発

【Swift4】ToDoリストアプリを作る(4)

新規タスクを追加するところまで実装できました。 セルのテキストビューをタップするとテキストの編集はできますが、キーボードが閉じないので、編集が終わったらキーボードを閉じる処理をまずは実装します。 ソフトキーボードの「改行」表示を「Done」に変…

【Swift4】ToDoリストアプリを作る(3)

肝心要のCoreDataの設定 プロジェクトファイル内に自動的に作られた、アプリ名.Xdatamodeldから Add Entityをクリックします。 追加されたEntityの名前を、今回は「Task」とします。 Attributesの「+」をクリックして、変数名とデータ型を以下のようにしま…

【Swift4】ToDoリストアプリを作る(2)

タスクの新規追加をするためにどのようなUIにするか、ToDoリストアプリにおいて悩みどころです。 今回は、Androidのフローティングアクションボタン風のボタンを右下に配置することにしました。 スマホの操作をしていると、「指を上の方に持っていくのは少々…

【Swift4】ToDoリストアプリを作る。

 こんな感じのTODOリストを作ってみます。 ポイントは ・コアデータを利用してタスク情報を永続化 ・テーブルビューをContainerViewに埋め込む形で利用 です。何回かに分けてご紹介します。コードについては、拙い部分や、もっとこうした方がスッキリするよ…

CoreDataを使う

CoreDataを使う プロジェクト作成時に、use CoreDataにチェックを入れる。 プロジェクト名.xcDatamodeldから、Add Entitiesをクリック。 ENTITIESのモデル名を定義する(今回はDataとしています) Attributesに、利用するデータ型を定義する。 import CoreDa…

UIButtonにaddTargetでイベント取得

UIButtonにaddTargetでイベントを取得する。 しょっちゅう忘れるのでメモ。 myButton.addTarget(self, action: #selector(MyViewController.buttonTapped), for: .touchUpInside) アンドロイドでいうセットオンクリックリスナー的な。 引数はわからないけど…

【iOSアプリ】ToDo2Lists公開!

swiftで開発を始めて、3つめに作ったアプリ、ToDo2Listsのご紹介です。 よくある、タスクリストのアプリです。アプリを開発していると、 デザインを調節する 広告を貼る アイコンを作る ○○した時に落ちる など、実装する機能や改善点などがどんどん出てくる…

Swiftはじめました

こんばんわ。寒川で美容師しながら趣味でアプリ開発している人です。今までandroidで主に開発していたのですが、今年からiPhoneアプリの開発も始めました。更新サボっていました、すみません・・・。というのも、技術ブログも書くにしてもswiftはわからない…

電卓に使えるNumberFormatまとめ

数値をカンマ付きのテキストに変換する、 小数点以下の最大桁数を指定する、 端数処理をする、 末尾が"0"の場合は自動的に取り除く、など、 電卓のようなアプリにピッタリのNumberFormat。 NumberFormat nf = NumberFormat.getNumberInstance(); // 小数点以…

Viewを指に追従させる方法

ボタン等のViewをタッチし、そのまま指をスライドさせたときに、 指にくっついて来るようにViewを動かす方法です。サンプルでは横移動のみに制限し、指を離すとゴムのように元の位置に戻る動きをします。 (iOSの”スライドでロック解除”のイメージ)Viewのタ…

Androidアプリ終了に広告を出すとポリシー違反になる!?

ポリシー違反の回避と、長く使ってもらうアプリにするための考察 アプリ終了時にインタースティシャルなどの広告を表示するのは、 Googleのデベロッパーポリシー違反にあたります。 Androidに慣れ親しんでいるユーザーは、端末のバックボタンを押したら、 一…

端末の音量をコードから変更する

端末の音量を設定するには、AudioManagerを介して行います。 各ストリームごとの、音量を設定、現在の音量を取得、最大値を知る等のことができます。 最大値は端末によって違い、7だったり15だったりするので、 独自にシークバーなどを実装するときは、最大…

NumberPickerの5つ刻みなどに変更する

デフォルトでは1ずつ刻みのNumberPickerを、5つ刻みなどに変更する方法です。私の場合、どうもうまく行かなくて、以下のような回りくどいやり方にしたら 思ったように実行できました。 ナンバーピッカーを拡張して、カスタムナンバーピッカーを作り、 以下の…

Shapeでアクアボタン風リソース

Shapeで作ってみた 前回記事と同様に、こんどは横長のアクアボタン風リソースを作ってみました。 ちょっと違うけど、なんとなくそれっぽいのではないかと思います。 緑のボタンはテキストシャドウを設定しています。 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <layer-list> <item> <shape android:shape="rectangle" > </shape></item></layer-list></item></selector>

Shapeでアクアなボタンを作ってみた

以下のようなリソースを作ってみました。 レイヤーリストに、左から①②③④のアイテムを順次描画しています。 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <layer-list> <item > <shape android:shape="oval" > <size android:height="100dp" android:width="100dp"/> </size></shape></item></layer-list></item></selector>

電卓アプリ【お買い物電卓】リリースしました!

お買い物電卓【割引・割り勘・消費税を簡単計算!】 - Google Play の Android アプリ お買い物電卓~☆・・・いいタイトルが思いつかなかった(笑) 「何が出来るか」がわかることと、文字が全て表示されることが大事ということでコレにしました。 式と答え…

SearchViewを使って検索のインテントを発行する

SearchViewを使って検索のインテントを発行する方法です。ウィジェットとして任意の位置に配置できるほうのSearchViewです。 画面上部に現れる検索ダイアログや、アクションバーに組み込まれている検索ボックスではありません。 SearchView searchView = (Se…

最後にボタンを押してから数秒後に一回だけ処理をする

最後にボタンを押してから数秒後に一回だけ処理をする方法です。 たとえばフローティングアクションボタン(FAB)を設置していて、 ユーザーが何かをしているときはFABは隠しておき、操作が終わった後にちょっと間を置いて再び表示したいときなどに。 private …

画面の向きを取得する

現在の画面の向きを取得する方法です。 Configuration configuration = getResources().getConfiguration(); switch(configuration.orientation) { case Configuration.ORIENTATION_PORTRAIT: // 縦向き break; case Configuration.ORIENTATION_LANDSCAPE: /…

テキストサイズをButtonに収まるように調整する

テキストサイズをButtonに収まるように調整するためのメソッドです。 TextViewでテキストサイズを自動調整する方法は検索すると多数出てきます。 こちらを参考にさせていただきました。ありがとうございます。 TextViewのフォントサイズを自動調整する。 - m…

EditTextの指定位置にカーソルを移動

EditText備忘録 指定位置にカーソルを移動する エディットテキストのsetSelection(int型)メソッドの引数にカーソルの位置を指定します。 0で、文字列の先頭になります。 EditText editText; editText.setSelection(3); 文字列の最後にカーソルを移動する edi…

EditText等で、Enterキーの入力イベントを検出する

ユーザーがEditTextで文字を入力中に、ソフトキーボードのEnterキーが押されたときのイベントを検出する方法です。EditTextに以下のようにリスナーをセットします。 mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override…

Android実機でデバッグできるようにする

Android実機でデバッグできるようにする方法です。 各メーカーの公式ドライバーをインストールする方法もありますが、 以下の方法を利用するとわずか数分で実機デバッグができるようになります。 端末のほうでは、開発者向けオプションが有効になっているも…

アクティビティをスタックに残さなくする

例えばタイマーアプリを作っていて、タイマー終了時に透明なアクティビティを開始して、アラートダイアログを表示し、OKが押されたり、dismissされたりしたときにそのアクティビティをフィニッシュするとします。 この透明アクティビティがスタックに残って…

【電卓アプリを作るvol.7】アプリ終了時の状態を保存

前回まで・・・ 計算結果に端数が出た場合に、 それを丸めて表示する静的メソッドを実装しました。今回は、 計算中に電話がかかってきて、 戻ったら全てクリアーされていたという、 悲しいことが起こらないように、 終了時の状態を保存し、 再開したときにロ…

【電卓アプリを作るvol.6】計算結果を成型する

前回まで・・・ とりあえず、必要最低限の電卓ができました。 今回は、計算結果を丸めて表示する機能を実装します。 現状の問題点 今の段階では、1+1=の結果が、"2.0" (シンプルに "2" でいいんじゃない?)また、10÷6のように割り切れない計算をすると …

【電卓アプリを作るvol.5】UIをレイアウトする

前回まで・・・ 汎用性の高いCalcクラスを作りました 今回は、最低限のUIと電卓として機能するまでを行います。UIをレイアウトします。 お好みのようにデザインしてください。 基本的には、電卓の液晶画面にあたる部分をTextViewで、 キーはButtonで配置しま…

【電卓アプリを作るvol.4】ソースコード2/2

Calc メインの電卓クラス アクティビティからnewして使います。 public class Calc implements Context { // ディスプレイ表示が変わるたびに、文字列をコールバックします public interface Callback{ void onTextChanged(String string); } Callback callb…

【電卓アプリを作るvol.3】ソースコード1/2

前回まで・・・ 電卓のアルゴリズムについて考えました 今回は、ソースコードを掲載します。 参考書のような詳細な解説は割愛しますが、 状態遷移表とコードを何度も見比べれば、 理解できると思います。アンドロイドスタジオのエクスプローラービューは↓こ…

【電卓アプリを作るvol.2】アルゴリズム

前回まで・・・ 状態遷移表ができました。 今回はこの状態遷移表に基づいた処理を、どう実装するのかを考えます。 状態を定義 A、B、C、Dの各状態を、クラスで表現します。「状態をクラスで・・・」というと、漠然としていますが、 結局のところ、何かイベン…