HackerQuest

No app, no life

趣味と実益を兼ねてプログラマをやっている者👨‍💻

水飲み健康法を管理するアプリを作りました。

WaterLife

WaterLife

  • Ryo Tsudukihashi
  • ヘルスケア/フィットネス
  • 無料
apps.apple.com

こんにちは、@tsuzuki817です。 最近、一部エンジニア界隈で賑わっている水を1日4L飲むという健康法をほどほどに行って3週間ほどたちました。

毎日、3Lは水を飲むことができていて、睡眠時間がだいたい2h減りました!(6.5~7h -> 4.5h )

朝、6時ぐらいになると、自然と目がさめる感じです。

水は基本常温で、ちびちび飲みます。無理をすると逆に体に良くないので、ほどほどにやりましょう。

感想?的なもの

Swift初心者が2weekかけて作りました〜(たぶんtotal20hぐらい?)

Swift Realmを使ったり、自分でカレンダー作ってみたり、いろいろ楽しみながら開発できました!

iOSのライフサイクルや、CollectionViewのCellについて初めて知ることが多く、大変勉強になりました。

以下はすごく参考になりました!

qiita.com

https://www.usagi1975.com/102620170048/

個人的に気に入っているところ

youtu.be

UISliderを使って、自分が飲んだ水の量を増やすことができるシーンですw 水色のUIViewを作って、スライダーに合わせて上下させています。

 container.frame = 
  CGRect(x: Double(self.view.frame.midX), y: Double(self.view.frame.maxY) - tmp, width:Double(width), height: tmp)

tmp がUISlierの量でtmpが大きくなるにつれて、y座標を下げることでうまいこと、上に上昇するアニメーションをつくることができました。

締め

まだまだ改良の余地が多くあると思っているので、これからもアップデートをしていこうと考えています。もちろん新規アプリもバンバンリリースしていく予定です!

よろしくお願いします。

Ryo Tsuzukihashi

WaterLife

WaterLife

  • Ryo Tsudukihashi
  • ヘルスケア/フィットネス
  • 無料
apps.apple.com

プライバシーポリシー

Ryo Tsuzukihashi は、以下のとおり個人情報保護方針を定め、個人情報保護の仕組みを構築し、個人情報保護の重要性の認識と取組みを徹底することにより、個人情報の保護を推進致します。

 

個人情報の管理

Ryo Tsuzukihashi は、お客さまの個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス・紛失・破損・改ざん・漏洩などを防止するため、セキュリティシステムの維持・管理体制の整備徹底等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行ないます。  

個人情報の利用目的

お客さまからお預かりした個人情報は、各アプリ内でのデータ保存、ランキングのみに利用します。  

個人情報の第三者への開示・提供の禁止

Ryo Tsuzukihashi は、お客さまよりお預かりした個人情報を適切に管理し、次のいずれかに該当する場合を除き、個人情報を第三者に開示いたしません。 お客さまの同意がある場合 お客さまが希望されるサービスを行なうために当社が業務を委託する業者に対して開示する場合 法令に基づき開示することが必要である場合  

個人情報の安全対策

Ryo Tsuzukihashi は、個人情報の正確性及び安全性確保のために、セキュリティに万全の対策を講じています。  

ご本人の照会

お客さまがご本人の個人情報の照会・修正・削除などをご希望される場合には、ご本人であることを確認の上、対応させていただきます。  

法令、規範の遵守と見直し

Ryo Tsuzukihashi は、保有する個人情報に関して適用される日本の法令、その他規範を遵守するとともに、本ポリシーの内容を適宜見直し、その改善に努めます。  

お問い合せ

Ryo Tsuzukihashi の個人情報の取扱に関するお問い合せは下記までご連絡ください。 Ryo Tsuzukihashi  tsudukihashi0817@gmail.com

Unity 2D 円運動

Unity 2Dで円運動をする関数

まずはじめに,移動速度と円運動する半径を定義しておく

    public float  moveSpeed = 1.0f;

    public float circle_radius = 1.0f;

初めの位置を固定したい場合は以下も用意

    private Vector2 initPosition;

    void Start () {
        initPosition = transform.position;
    }

initPositionは初期位置

 

transform.positionを利用する場合について

 

       Vector2 pos = transform.position;

で自分の位置を取得する.

次に

        float rad = moveSpeed * Mathf.Rad2Deg * Time.time;

三角関数を使うためのラジアンを用意する.

そして

        pos.x = Mathf.Cos(rad) * circle_radius;

        pos.y = Mathf.Sin(rad) * circle_radius;

でX軸,Y軸に三角関数を利用した移動先を与える.

        transform.position = pos + initPosition;

最後にオブジェクトの位置を変更してあげればOK!

 

これを

    void Circle()
    {
        Vector2 pos = transform.position;

        float rad = moveSpeed * Mathf.Rad2Deg * Time.time;

        pos.x = Mathf.Cos(rad) * circle_radius;

        pos.y = Mathf.Sin(rad) * circle_radius;

        transform.position = pos;
    }

 

このような関数にしてあげて,Update()の中に入れてあげればOK!

 

Ryo Tsuzukihashi