Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

グラデーション

こちらのやり方にしたがってやってみた。ics.media しかし値の調節にこつがいるのかもしれない。 <html> <head> <meta charset="utf-8"> <style> body { } #bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; /* 背景グラデーションの作成 */ background: linear-gradient(to bo</meta></head></html>…

flexbox

flexboxを用いて、タイル表示をしてみる。以下を参考にした。 ics.media HTMLはヘッダーにメニューとmainにタイルとしてdivを置いた。 <html lang="ja"> <head> <meta charset="UTF-8"> <title>title</title> <link rel="stylesheet" type="text/css" href="sample.css"> </head> <body> <header> <img src="hoge.png" alt=""> <ul> <li><a href="">item1</a></li></ul></header></body></html>

HTMLヘルパーでテーブルを作る

テーブルをガリガリと書く方法とHTMLヘルパーを使って各方法を2つ並べて書いてみた。 <h1> データ </h1> <table> <thead> <tr> <th>ID</th> <th>NAME</th> <th>TITLE</th> <th>CONTENT</th> </tr> </thead> <tbody> <tr> <td> id ?> </td> <td> name) ?></td> <td> title) ?></td> <td> </td></tr></tbody></table>

SQLiteの用意

CakePHPはデータベースやテーブルの設定を自分でする必要がある。大変面倒だがまずSQLiteでやってみることにする。 アプリ(例hoge)内にdbフォルダを作る(hoge/db)。 SQLiteのデータベースを作成する。 sqlite3起動 $ sqlite3 mydata sqlite> create table 'b…

モデル = テーブル+エンティティ

CakePHPのモデルとはテーブルとエンティティの全体を指して使う。以下のようなモデルを作ろう。識別用のIDを持ち、投稿者名とタイトルと投稿内容を持っている情報(エンティティ)とそのエンティティの集団(テーブル)。 このモデルを「Board」と名付けよう。命…

フォームヘルパーを使う

テンプレートに次のように記述。 <p> ヘルパーを使ったフォームの送信</p> <p> </p> Form->create(null, ['type' => 'post', 'url' => ['controller' => 'Hello', 'action' => 'index']]) ?>

AppController->request連想配列

AppControllerのrequestはCakeRequestクラス。request[種類][キー]で情報が取得できる。種類は params 送信された値すべて data POSTされた際の内容 query クエリー url 送信アドレス base ベースのディレクトリ webroot webrootディレクトリ here 現在のア…

フォーム

フォームをテンプレートに用意 <form method="get" action="/hello/sendForm"> <input type="text" name="text1" /> <inout type="submit" /> </form> フォームを送った先 <h1>送信結果</h1> <p></p> ファイル名はsend_form.ctpとする。クラス、メソッド名はキャメル記法なのに対し、アンダースコア記法であることが注意するところ。コントローラにhello/sendFormのアクションを書く

最初

htmlの最初 <html lang="ja"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> </body> </html>

単にテンプレート的にhtmlを吐き出す

単純に関数に代入してhtmlを作ってみたがお世辞にも簡潔には書けなかった。。 import Data.List main = putStrLn html tag_doctype = "\n" tag_html txt = "\n<html>\n" ++ txt ++ "\n</html>\n" tag_head txt = "\n<head>\n" ++ txt ++ "\n</head>\n" tag_body txt = "\n<body>\n" ++ txt ++</body>…

htmlを吐き出してみる。

データ型と型クラスを使って少しまとめてみた。 同じようなコードを書かなくてはいけなくて面倒に感じる。 良い方法はないのだろうか。 import Data.List main = print (tag_doctype ++ html) tag_doctype = "" html = string (HTML [header,body]) header =…

お絵かき

haskellでお絵かきをするhtmlのコードを無理やり吐き出させてみた。もっとスマートにやれるはず。。 import Data.List main = print tag_doctype tag_doctype = "" ++ html html = tag_html (tag_header (tag_title "OK!") ++ tag_body (tag_p "hello") ++ t…

複数行の文字列

改行を含むような複数行の文字列を入れたい場合 main = print kakko kakko = " \ \ AB" のようにすれば良い。

AVPlayer

iOS

自分で作って忘れていたのだがシンプルな動画再生のプレーヤーとしてRDAVPlayerというコードを書いた。 github.com記事としては qiita.com 今ならもっと違う書き方になるかも。

URLSessionConfigurationのメモ

URLSessionConfigurationのメモこちらに良い記事があった。 qiita.com とりあえずメソッド一覧。あとから説明を追記する形で。 open class URLSessionConfiguration : NSObject, NSCopying { // デフォルト open class var `default`: URLSessionConfigurati…

canvasのサンプル

html5のcanvasで線を描く。 <head> <title>HTML5 canvas</title> </head> <body> <div align="center"> <h1>sample</h1> </div> <div align="center"> <canvas id="canvas" width="200" height="200" > <p>error</p> </canvas> </div> <script> var example = document.getElementById('canvas'); var context = e…</body>

円を描く

extension CGRect { init(_ center:CGPoint, _ size:CGSize) { self.origin = CGPoint(x:center.x - size.width/2, y:center.y - size.height/2) self.size = size } } extension CGPoint { init(_ x:CGFloat, _ y:CGFloat) { self.x = x self.y = y } } ext…

値の受け渡し

コントローラからテンプレートへ値をセットするには $this->set('poi',10); これでテンプレートでは$poiに10が入る。 <p> </p>

エレメント

レイアウトにはめ込んで使える。Templete/Elementフォルダにいれておき、 element(hoge) ?> で読み込める。 値をわたしたければ element(hoge, ['x'=?10,'y'=>5]) ?> のように渡す。色々部品化しておくと良いようだ。

レイアウト

使用するスタイルシートwebroot/css/cake.hello.cssを用意する。 body { background: #eee; color: #999; margin: 10px 8px } #header { font-size: 18pt; font-weight: bold; margin: 10px; } #content { background: #fff; color: #999; padding: 10px 25p…

テンプレート

src/Template/Hello/index.ctpを作ってテンプレートを以下のように用意 <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Hello Page</title> </head> <body> <h1>midashi</h1> <p> hello hello </p> </body> </html> コントローラ側でautoRenderをtrueにしてテンプレートを読み込む。

フォワードとリダイレクト

setAction(other); } public fun…

Hello World

/helloにアクセス /hello/otherにアクセス

プロトコルMisc

CustomStringConvertible description オブジェクトの文字表示 print CustomDebugStringConvertible debugDescription オブジェクトの文字表示 debugPrint LosslessStringConvertible 文字列からそのままオブジェクト構築できる TextOutputStream write(_ st…

Tensorflowの画像認識のチュートリアル

キータにも書いたが、自分のメモとしてTensorflowの画像認識のチュートリアルのサンプルに結果表示をいれたものをメモしておきたい。 コードの説明はコメントの形で埋め込んだ。qiita.com #coding:UTF-8 # rdtensorflowsample.swift # KatagiriSo import inp…

制約を更新する。

UIViewのupdateConstraintsを上書きする。superを最後に呼ぶことを忘れない。制約の反映はsetNeedsUpdateConstraintsを呼ぶ。

乱数

let x = arc4random() % 5 let x = arc4random_uniform(5) seed指定いらない。

デバイスごとのUI調整

途中にUIViewを挟んでそのUIViewのアスペクト比を決め、左右などを固定することで、そのUIViewに隣接する形でビューを拘束配置していけば画面の大きさが変わった際の調節ができる。

単語

inherently 生得的に、本質的に verbose 冗長なsibling 兄弟(男女別のない) ancestor 先祖 descendant 子孫trail 通った跡、痕跡 trailing end 終端 追加 2017.06.12 indispensable 絶対必要な Anatomy 解剖学、詳細な分析 Hands on 実践的 fly by の近くを…

proxyでrsyncが使えない時

gitが入っていれば代わりにgitを使う。 howto/SyncingWithGit – MacPortsgitのproxy設定は gitでプロキシを設定 - Qiita

toolbarの色をかえる

let button = UIBarButtonItem(customView:button) self.toolbarItems = [flexl, button, flexr] self.navigationController?.toolbar.barTintColor = UIColor.White self.navigationController?.setToolbarHidden(false, animated: true)

無限ループ

UICollectionViewを継承したクラスをつくり、layoutsubViewsで中心からコンテンツが1/4程度外れていたらContentOffSetを中央へ移動させるようにすれば良い。 let totalContentWidth = CGFloat(cellCount) * cellWidth let centerOffsetX = totalContentWidth…

BehaviorSubject

BehaviorSubjectは最後の値を覚えていてsubscribeで即座に値が返ってくる。最初の値はこちらで指定できる。 class Temperature { private let behaviorSubject = BehaviorSubject(value:0) var behavior : BehaviorSubject<Int> { return behaviorSubject } func </int>…

ダイナミックタイプ

自動的に文字の大きさを設定してくれる。フォントを対応するタイプを指定すれば良い。 UIFont.preferredFont(forTextStyle: .body) ストーリボードでもできる。コンテンツサイズの変更は次の通知を受ければ解る。 Notification.Name.UIContentSizeCategoryDi…

UITextViewの縦方向の中央寄せ

contentSizeをオブザーブして textView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil) contentSizeに変化があれば、中身を調節する。 override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NS…

Observable

次のようなクラスを定義する。 class Temperature { private let eventSubject = PublishSubject<Int>() var event: Observable<Int> { return eventSubject } func doSomething(x:Int) { eventSubject.onNext(x) } } テキストフィールドの編集が終わったタイミングで</int></int>…

RXSwift

RxSwiftを試してみた。CocoaPodでインストールした上で以下をインポート import RxSwift import RxCocoa 使い方は textFiled!.rx.text .map { guard let text = $0, text.lengthOfBytes(using:.utf16) > 0 else { return "" } return "\(text)!" } .bindTo(l…

継続モナド

継続モナドはSwiftで段階的に作れる。1. まず継続渡しの関数を作る。 func getA(complete:(String)->Void) { complete("X") } 2. 継続渡しの関数を引数にとるクラスを作る。 typealias Func<T> = (T)->Void public struct RDFuture<T> { public var f:(Func<T>)->() p</t></t></t>…

proxy

git

.gitconfig に設定を書くこれはターミナルでできる。 git config --global http.proxy http://name:pass@host:port git config --global https.proxy https://name:pass@host:port

Realm

Realmを試してみた。便利だ。。 import Foundation import RealmSwift class Man : Object { // ObjectはRealmのクラス dynamic var name = "" // dynamicはobjective-Cのランタイムを利用して値にアクセスする dynamic var age = 10 let cats = List<Cat>() // L</cat>…

proxy

export USERNAME= export PASSWORD= export HOST= export PORT= export PROXY=$USERNAME:$PASSWORD@$HOST:$PORT export http_proxy=http://$PROXY export https_proxy=https://$PROXY export ftp_proxy=ftp://$PROXY export HTTP_PROXY=http://$PROXY export…

コレクションビューの隙間

水平な線形レイアウトで隙間を調整したい時、しかもminimumをなくしたいと考えた時、ラインも修正すると良い。

セクション

セクションは流れていく。それを止めるには stackoverflow.com

画面の一部を切り取る

resizableSnapshotView これとUIView.transitionを組み合わせて一部分の画面遷移を再現できる。

viewWillLayoutSubviews

viewWillLayoutSubviewsはviewのlayoutSubviewsの前に呼ばれる。 ちなみにlayoutSubviewsはレイアウト更新タイミング、制約つけたいときはupdateConstraints。viewWillLayoutSubviewsは結果的にViewWillAppearとViewWillDidAppearの中間で呼ばれることになる…

インライン展開

iOS

CG_INLINEを使えば良い。

画面切替

iOS

snapshotViewとの組み合わせでいける。 let currentView = self.view.snapshotView(afterScreenUpdates: true)! self.view.addSubview(currentView) UIView.transition(with: currentView, duration: 0.5, options: [.transitionFlipFromRight], animations:…

幾つかのメモ 2

ImageButtonはボタン背景がついてしまう。 画像つきボタンはImageViewを使えば良い。 文字付きアイコンはShapeを定義してバッググラウンドに指定する。 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="@color/hoge"/> </solid></shape>

SNS関連

ツイート 以下でツイート対応アプリが出る。 String url = "http://twitter.com/share?text=" + text; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

GSON関連

リストを変換 Gson gson = new Gson(); Type listType = new TypeToken<List<ItemClass>>(){}.getType(); List<ItemClass> items = gson.fromJson(jsonArray, listType);</itemclass></list<itemclass>