Skip to content

sora5042/CalendarApp

Repository files navigation

2021年度 櫻井ゼミ カレンダーアプリ

概要

このアプリはカレンダーでスケジュール管理ができるアプリです。
データベースはRealmを利用しています。

主な機能としては

  • 日付ごとのイベント管理機能(CRUD)

  • リマインダープッシュ通知

  • カスタマイズ可能なカレンダー表示(スライド方向の切り替え設定、曜日順)

  • 六曜の表示

  • 土日祝のみと平日のみの表示機能

  • Widget

  • Googleカレンダーアプリと同期、iOS標準カレンダーアプリと同期

となっております。

苦労した点:これまで利用していたSQLite、Firebaseと比べてRealmはRealmSwiftの設計思想や使い方を理解して使わなければトラブルがよく発生する点。

現状での課題:UXの考え方や既存アプリとの差別化をするためにはどうすればいいか模索中です。

このアプリはAppStoreに公開済みです。
https://apps.apple.com/jp/app/re-%E3%82%B9%E3%82%B1/id1607735456

使用ライブラリ

  • FSCalendar
    カレンダーの実装

  • RealmSwift
    日付ごとのイベント管理

  • CalculateCalendarLogic
    祝日判定

  • TextFieldEffects
    TextFieldのUI

  • IQKeyboardManager
    キーボード表示時の画面のスライド

  • PKHUD
    通信時のローディングインジケーター

  • SwiftLint
    ソースコードの品質管理

  • AppAuth
    OAuth2.0およびOpenIDConnectプロバイダーと通信するためのクライアントSDK

  • GTMAppAuth
    AppAuthでリクエストを認証するためGTMFetcherAuthorizationProtocolの実装を提供する

  • GoogleAPIClientForREST/Calendar
    Googleの様々なAPI へのアクセス・データの取得などを簡単にできるようにしてくれるもの(今回はGoogleカレンダー)

  • Google-Mobile-Ads-SDK
    Googleモバイル広告の最新世代で、洗練された広告フォーマットと、モバイル広告ネットワークや広告ソリューションにアクセスするため

  • LicensePlist
    CocoaPods、SwiftPMなどで管理しているライブラリのライセンス表示を自動的に生成するツール

  • Firebase
    Firebaseのアナリティクスでユーザー解析をするため

開発環境

  • Swift5.5.2
  • Xcode13.2.1

スクリーンショット(iPhone12mini)

セットアップ

CocoaPods導入

ターミナルで以下を入力

sudo gem install cocoapods

下記のエラーが出る場合は、

orta/cocoapods-keys#198 (comment)

を参考にRubyのバージョン2.6.3を入れる

ERROR:  Error installing cocoapods:
        ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.12.2/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /Library/Ruby/Site/2.6.0 -r ./siteconf20211113-24669-declh0.rb extconf.rb
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:546:in `block in try_link0'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/tmpdir.rb:93:in `mktmpdir'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:543:in `try_link0'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:570:in `try_link'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:672:in `try_ldflags'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1832:in `pkg_config'
        from extconf.rb:9:in `system_libffi_usable?'
        from extconf.rb:34:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-20/2.6.0/ffi-1.12.2/mkmf.log

extconf failed, exit code 1

gitでcloneしたディレクトリをターミナルで開き、ディレクトリに移動後以下を実行

pod setup
pod install

プロジェクトを開く

Xcodeでgitでcloneしたディレクトリを開く。

./CarendarApp.xcworkspaceディレクトリが生成される。

Xcodeが入っていない場合はAppleのアプリストアでインストールする。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published