Search Github repositories.

Overview

codecov

GitHub Search

GitHub API を利用して GitHub のリポジトリを検索するアプリです。株式会社ゆめみのFlutterエンジニアコードチェックの要件を満たすよう実装しています。

本アプリを通して自分なりの最適なアーキテクチャを確立し、リファレンスコードにすることを目的にしています。

⚠️ 注意
このアプリは GitHub API を利用するために GitHub の アクセストークン をアプリの内部でハードコーディングして保持する構成になっています。このアプリを公開すると悪意のある者に アクセストークン を抜き取られ悪用される恐れがありますのでお控え下さい。もちろん、手元でビルドして動かすことは問題ありません。

github_search_0 1 0_demo

アプリの機能

  • シンプルな UI / UX
    • GitHub リポジトリの検索と詳細表示
    • 無限スクロール対応
  • go_router を使った新しいルーティング
  • http を使った REST API の実装
  • 多言語対応(日本語/英語)
  • カスタムフォント対応
  • mockito を使った Unit / Widget テスト
  • flutter_launcher_icons を使ったアプリアイコン
  • flutter_native_splash を使ったスプラッシュ画面
  • GitHub Actions による自動テストと自動ビルド
  • サポートするプラットフォーム
    • iOS / Android / Web / macOS / Windows

今後対応予定

  • hive or shared_preferences の利用
  • Integration テスト
  • テーマ対応
  • ダークモード対応
  • よりよい UI / UX

対応しないこと

  • Firebase 連携
  • Flavor 対応(develop / staging / production などの環境分け)

アーキテクチャ / パッケージ

CODE_WITH_ANDREA

  • 本アプリの依存関係図です。
%%{init:{'theme':'base','themeVariables':{'primaryColor':'#f0f0f0','primaryTextColor':'#2f2f2f', 'lineColor':'#2f2f2f','textColor':'#2f2f2f','fontSize':'16px','nodeBorder':'0px'}}}%%
graph TD
    subgraph プレゼンテーション層
    IndexPage(一覧ページ<br>StatelessWidget) --> SearchTextField(検索テキストフィールド<br>ConsumerWidget)
    IndexPage --> ListView(一覧 View<br>ConsumerWidget)
    SearchTextField --> SearchText([検索文字列<br>String])
    ListView --> ListViewState([一覧 View 状態<br>State])
    ListViewState --> ListViewController(一覧 View コントローラ<br>StateNotifier)
    ListViewController --> SearchText
    ViewPage(詳細ページ<br>StatelessWidget) --> DetailView(詳細 View<br>ConsumerWidget)
    DetailView --> DetailViewState([詳細 View 状態<br>State])
    DetailViewState --> DetailViewController(詳細 View コントローラ<br>StateNotifier)
    DetailViewController --> ViewParameter([オーナー名とリポジトリ名<br>Equatable])
    end
    subgraph データ層
    ListViewController --> RepoRepository(リポジトリ用リポジトリ)
    DetailViewController ---> RepoRepository
    RepoRepository --> GitHubRepoRepository(GitHub 向けリポジトリ用リポジトリ)
    subgraph DTO
    GitHubRepoRepository --> GitHubHttpClient(GitHub 向け HTTP クライアント)
    GitHubRepoRepository --> GitHubApiDef(GitHub API 定義)
    end
    subgraph データソース
    GitHubHttpClient --> GitHubApi(GitHub API)
    end
    end
    subgraph 環境変数
    SearchText --> EnvSearchText{{検索文字列初期値<br>String}}
    GitHubHttpClient ---> EnvAccessToken{{アクセストークン<br>String}}
    end

    classDef widget fill:#4063DD, color:#ffffff;
    classDef controller fill:#4063DD, color:#ffffff;
    classDef state fill:#BDB5F4, color:#ffffff;    
    classDef repository fill:#437C40, color:#ffffff;
    classDef env fill:#7c7d7c, color:#ffffff;
    class IndexPage,ViewPage,ListView,SearchTextField,DetailView widget;
    class ListViewController,DetailViewController controller;
    class SearchText,ListViewState,DetailViewState,ViewParameter state;
    class RepoRepository,GitHubRepoRepository,GitHubHttpClient,GitHubApiDef,GitHubApi repository;
    class EnvSearchText,EnvAccessToken env;
  • 一覧 Viewが更新される例
    • 一覧 Viewの依存関係は、一覧 View一覧 View 状態一覧 View コントローラ検索文字列となっています。ユーザが検索文字列を変更し検索を実行した場合、検索文字列が更新されます。すると検索文字列に依存している一覧 View コントローラが更新され、リポジトリ用リポジトリ検索文字列を与えてリポジトリの検索を実行し、その結果をもとに一覧 View 状態を更新します。すると一覧 View 状態に依存している一覧 Viewがリビルドされて再描画されます。
  • 詳細 Viewへの画面遷移の例
    • 一覧 ViewListTileがタップされるとオーナー名とリポジトリ名を表示したい内容に更新して詳細ページに画面遷移します。詳細画面が開くと詳細 Viewがビルドされ、詳細 View コントローラも作成されます。詳細 View コントローラオーナー名とリポジトリ名リポジトリ用リポジトリに与えてリポジトリの取得を実行し、その結果をもとに詳細 View 状態を更新します。すると詳細 View 状態に依存している詳細 Viewがリビルドされて再描画されます。

フォルダ構成

フォルダ名 説明
/ assets assetsにアクセスする自動生成されるユーティリティクラス
/ config アプリケーション、定義値、環境変数
/ entities モデル層のファイル
リポジトリの戻り値に使うエンティティ
プレゼンテーション層で使うエンティティ(_data suffix がつく)
/ localizations 言語ファイル(arb ファイル)、flutter gen-l10n で生成されるクラス
/ presentation / pages プレゼンテーション層のファイル
画面Widget
/ presentation / widgets プレゼンテーション層のファイル
部品Widget、Controller、State
/ repositories データ層のファイル
リポジトリ、データソース
データソースはサブディレクトリで管理
/ utils 拡張機能、ロガーなど便利クラス

環境

Version
Xcode 13.3
Android Studio Bumblebee 2021.1.1 Patch 2
Flutter 2.10.3
Swift 5.6
Kotlin 1.6.10
Chrome 99

対象 OSバージョン

OS Version
iOS 9.0 ~ 15.4
Android 8.0 ~ 13

ビルド方法

  • カレントディレクトリで下記コマンドを実行してください。
    • bin/flutter_env は引数で与えられた環境変数を基にビルドに必要な lib/config/env.dart を作成してくれます。
    • 作成された lib/config/env.dart を直接編集しても大丈夫です。
bin/flutter_env -g [アクセストークン] -s [検索文字列の初期値]
パラメータ名 説明
-g [アクセストークン] Must 値には GitHub 個人アクセストークン を設定してください。
-s [検索文字列の初期値] Optional 好きな文字列を設定してください。指定しない場合は空文字が設定されます。
-h ヘルプを表示します。
  • Configurations を選択してビルドしてください
Configurations 名 説明
app アプリ(iOS / Android)向け
web Web 向け

コードの自動生成

  • arb ファイルを変更した場合や freezed を使った dart ファイルを変更した場合は下記コマンドを実行してください。
bin/flutter_gen

テスト

  • ローカルでテストを行う場合は下記コマンドを実行してください。
    • 静的解析 => テスト => カバレッジの結果を表示 を行います。
bin/flutter_test

API ドキュメント

  • API ドキュメント で公開しています。

  • ローカルで生成する場合は下記コマンドを実行してください。

bin/dartdoc

CI

  • GitHub Actions を利用して CI を構築しています。
    • プルリクエストが作成や更新された時、もしくは main または develop ブランチに push されたときに CI が発火します。
%%{init:{'theme':'base','themeVariables':{'primaryColor':'#f0f0f0','primaryTextColor':'#2f2f2f', 'lineColor':'#2f2f2f','textColor':'#2f2f2f','fontSize':'16px','nodeBorder':'0px'}}}%%
flowchart LR
    Start((開始)) --> Analyze(静的解析)
    subgraph テスト
    Analyze --> Test(単体テスト)
    Test --> UploadCoverage(Codecovに結果を送信)
    end
    subgraph ビルド
    UploadCoverage --> BuildAndroid(Androidビルド)
    UploadCoverage --> BuildiOS(iOSビルド)
    UploadCoverage --> BuildWeb(Webビルド)
    UploadCoverage --> BuildMacOS(macOSビルド)
    UploadCoverage --> BuildWindows(Windowsビルド)
    UploadCoverage --> CreateApiDoc(APIドキュメント作成)
    CreateApiDoc --> DeployGitHubPages(GitHubPagesにデプロイ)
    end
    subgraph レポート
    BuildAndroid ---> NotifySlack(Slackに結果を送信)
    BuildiOS ---> NotifySlack
    BuildWeb ---> NotifySlack
    BuildMacOS ---> NotifySlack
    BuildWindows ---> NotifySlack
    DeployGitHubPages --> NotifySlack
    end
    NotifySlack --> End((終了))

    classDef anchor fill:#4063DD, color:#ffffff;
    classDef testJob fill:#4063DD, color:#ffffff;
    classDef buildJob fill:#d32f2f, color:#ffffff;
    classDef reportJob fill:#437C40, color:#ffffff;
    %% class Start,End anchor;
    class Analyze,Test,UploadCoverage testJob;
    class BuildAndroid,BuildiOS,BuildWeb,BuildMacOS,BuildWindows,CreateApiDoc,DeployGitHubPages buildJob;
    class NotifySlack reportJob;

ライセンス

MIT

Comments
  • Web版をCloudflare Pagesにブランチ毎にデプロイする

    Web版をCloudflare Pagesにブランチ毎にデプロイする

    手順

    仕組みの説明

    TODO

    CloudFlare Pages にデプロイする Flutter Web 用のブランチを作成する

    peanut package をインストールする

    flutter pub global activate peanut
    

    ↓実行ログ

    mbp16:github_search susa$ flutter pub global activate peanut
    Resolving dependencies...
    + args 2.3.0
    + async 2.9.0
    + build_cli_annotations 2.0.0
    + charcode 1.3.1
    + checked_yaml 2.0.1
    + collection 1.16.0
    + file 6.1.2
    + git 2.0.0
    + glob 2.0.2
    + io 1.0.3
    + json_annotation 4.4.0
    + meta 1.7.0
    + path 1.8.1
    + peanut 4.1.1
    + pub_semver 2.1.1
    + source_span 1.8.2
    + string_scanner 1.1.0
    + term_glyph 1.2.0
    + yaml 3.1.0
    Downloading peanut 4.1.1...
    Downloading git 2.0.0...
    Downloading build_cli_annotations 2.0.0...
    Downloading collection 1.16.0...
    Downloading async 2.9.0...
    Installed executable peanut.
    Warning: Executable "peanut" runs "bin/peanut.dart", which was not found in peanut.
    Warning: Pub installs executables into $HOME/Develop/flutter/.pub-cache/bin, which is not on your path.
    You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.):
    
      export PATH="$PATH":"$HOME/Develop/flutter/.pub-cache/bin"
    
    Activated peanut 4.1.1.
    

    カレントブランチをdevelopにして、以下のコマンドを実行して Flutter Web をビルドしてコミットします。 -b はコミットしたいGitのブランチ名を指定します。 開発環境は web-pages/develop 本番環境は web-pages/main --web-renderer で html か canvaskit を指定できます。デフォルトは html です。 -m はコミットメッセージです。 その他のオプションは https://pub.dev/packages/peanut を見てください。

    flutter pub get
    flutter pub global run peanut -b web-pages/develop --release --web-renderer html -m "built web of develop branch by peanut"
    

    ↓実行ログ

    mbp16:github_search susa$ flutter pub get
    Running "flutter pub get" in github_search...                    2,097ms
    mbp16:github_search susa$ flutter pub global run peanut -b web-pages/develop --release --web-renderer html -m "built web of develop branch by peanut"
    Validating packages:
      /Users/susa/Develop/github_search
    
    Package:     /Users/susa/Develop/github_search
    Directories: web
    Command:     flutter build web --web-renderer html --release
    
    
    💪 Building with sound null safety 💪
    
    Compiling lib/main.dart for the Web...                             26.5s
    
    Branch "web-pages/develop" was updated with commit 823c11880f
      built web of develop branch
      
      Branch: develop
      Commit: e16dc0dabd6d579d8e6e10893777dfa816ff2a80
      
      package:peanut 4.1.1
    
    

    以下のコマンドで、作成した web-pages/develop を push します。

    git checkout web-pages/develop
    git push -u origin web-pages/develop
    git checkout develop
    

    CloudFlare Pages プロジェクトを作成する

    https://pages.cloudflare.com/ アカウントを作成する(サインアップ)

    左のメニューの Pages を選択して、プロジェクトを作成ボタンを押してプロジェクトを作成します。

    GitHubに接続ボタンを押して、連携したい Organization を選択して、連携したいリポジトリを選択して Install & Authorize ボタンを押します。

    セットアップの開始ボタンを押します。

    プロジェクト名と本番環境のブランチを任意に設定します。 プロジェクト名は -dev のsuffixをつけました。 ブランチは先ほど作成した web-pages/develop を選択しました。 フレームワーク プリセットは None を選択します。ビルド コマンド と ビルド出力ディレクトリは空のままにしておきます。 保存してデプロイするボタンを押します。しばらくすると初めてのデプロイが完了します。

    参考サイト

    https://hrishikeshpathak.com/blog/flutter-web-hosting-cloudflare

    opened by susatthi 4
  • アーキテクチャ・ディレクトリ構成のアップデート

    アーキテクチャ・ディレクトリ構成のアップデート

    • [x] ディレクトリ構成を変更する

    PXL_20220525_011736302

    /config アプリ、ルーティング、テーマ、環境変数など
      - app.dart
      - router.dart
      - theme.dart
    
    /presentation プレゼンテーション層、関心事毎にサブフォルダで分ける
      /common
        - error_page.dart
        /components
          - custom_button.dart
      /user
        - index_page.dart
        - view_page.dart
        - edit_page.dart
        /components
          - name_text.dart
          - name_text_state.dart
          - name_text_notifier.dart
    
    /application アプリケーション層、関心事毎にサブフォルダで分ける
      /common
        - common_service.dart
      /app
        - app_service.dart
      /user
        - user_service.dart
    
    /domain ドメイン層、関心事毎にサブフォルダで分ける
      /app
        /repositories
          - app_repository.dart
      /user
        /entities
          - user.dart
        /repositories
          - user_repository.dart
    
    /infrastructure インフラストラクチャ層、DataSource毎にサブフォルダで分ける
      /hive
        - app_repository.dart
      /firestore
        - user_repository.dart
        /documents
          - user.dart
    

    DDD を参考に下記の観点でリファクタリング

    • [x] ドメイン層はどの層にも依存してはならない
    • [x] インフラ層はドメイン層のみに依存する
    • [x] プレゼンテーション層のNotifierはドメイン層のみに依存する
    • [x] ownerエンティティは不要そう
    • [x] アプリケーション層が必要にならないか?
    • [x] ドメイン層のエンティティのEntityHelperというおおざっぱなextensionはやめて、ValueObject風に個々のValueのextensionにする
    • [x] 例外の定義をインフラ層からドメイン層に移動する
    • [x] ブラウザ起動処理をどこに書くか?
    opened by susatthi 3
  • build(deps): bump go_router from 5.1.10 to 5.2.4

    build(deps): bump go_router from 5.1.10 to 5.2.4

    Bumps go_router from 5.1.10 to 5.2.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump go_router from 5.1.10 to 5.2.1

    build(deps): bump go_router from 5.1.10 to 5.2.1

    Bumps go_router from 5.1.10 to 5.2.1.

    Commits
    • 44fc781 [go_router] Refactors GoRouter.pop to handle pageless route (#2879)
    • 8a2de62 [pigeon] Replace legacy e2e tests (#2873)
    • df56134 [pigeon] Allow specifying multiple tests (#2874)
    • 9f00b52 [pigeon] Consolidate integration test pigeons (#2859)
    • 891ae3b [pigeon] Do generation for tests via the library (#2861)
    • e1dc854 [pigeon] Add the iOS tests in the new harness as non-default options (#2867)
    • 6d9f6c6 fix list test for latest pkg:markdown (#2862)
    • d58da50 [pigeon] Add method to run pigeon with PigeonOptions (#2842)
    • bddfe04 [pigeon] Enable iOS Swift integration tests (#2858)
    • d5d3b46 [pigeon] Fix Java integration test script (#2856)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump go_router from 5.1.10 to 5.2.0

    build(deps): bump go_router from 5.1.10 to 5.2.0

    Bumps go_router from 5.1.10 to 5.2.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump cached_network_image from 3.2.2 to 3.2.3

    build(deps): bump cached_network_image from 3.2.2 to 3.2.3

    Bumps cached_network_image from 3.2.2 to 3.2.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump url_launcher from 6.1.6 to 6.1.7

    build(deps): bump url_launcher from 6.1.6 to 6.1.7

    Bumps url_launcher from 6.1.6 to 6.1.7.

    Commits
    • 9990a4b [ci] Improve analysis_options alignment with flutter/packages (#6728)
    • d6c0bcb [ci] Manually Roll Flutter from 61e927d22fe6 to d2e6dfefa5ca (143 revisions) ...
    • def5457 [url_launcher]: Bump annotation from 1.0.0 to 1.5.0 in /packages/url_launcher...
    • 91122ec Update Gradle and AGP in examples to 7.0 (#6625)
    • 42f55ed [various] Update Gradle in examples (#6614)
    • e17f931 [url_launcher]: Bump gradle from 3.4.2 to 4.2.0 in /packages/url_launcher/url...
    • 32b1f7b [ci] Update web mocks. (#6591)
    • b175843 [various] Add some more Java lint ignores (#6562)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump flutter_native_splash from 2.2.14 to 2.2.16

    build(deps): bump flutter_native_splash from 2.2.14 to 2.2.16

    Bumps flutter_native_splash from 2.2.14 to 2.2.16.

    Release notes

    Sourced from flutter_native_splash's releases.

    v2.2.16

    v2.2.15

    • Fix iOS background image build incorrectly when background dark image is used. Fixes #452, fixes #439.
    • Correct background image/color handling on web. Fixes #450.
    • Don't include dark styling in web if not specified in config. Fixes 453.
    • Add _Parameters class to hold parameters.
    Changelog

    Sourced from flutter_native_splash's changelog.

    [2.2.16] - (2022-Nov-27)

    [2.2.15] - (2022-Nov-20)

    • Fix iOS background image build incorrectly when background dark image is used. Fixes #452, fixes #439.
    • Correct background image/color handling on web. Fixes #450, fixes 324.
    • Don't include dark styling in web if not specified in config. Fixes #453.
    • Add _Parameters class to hold parameters.
    Commits
    • c63102b Update documentation on Android 12. Fix web background image. Thanks Severin...
    • 2f6e090 Fixes generation for already supported image formats (#460)
    • c44509f Fix web background image (#459)
    • b662516 Fix iOS background image build incorrectly when background dark image is used...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump flutter_riverpod from 2.0.0-dev.9 to 2.1.1

    build(deps): bump flutter_riverpod from 2.0.0-dev.9 to 2.1.1

    Bumps flutter_riverpod from 2.0.0-dev.9 to 2.1.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump flutter_native_splash from 2.2.14 to 2.2.15

    build(deps): bump flutter_native_splash from 2.2.14 to 2.2.15

    Bumps flutter_native_splash from 2.2.14 to 2.2.15.

    Release notes

    Sourced from flutter_native_splash's releases.

    v2.2.15

    • Fix iOS background image build incorrectly when background dark image is used. Fixes #452, fixes #439.
    • Correct background image/color handling on web. Fixes #450.
    • Don't include dark styling in web if not specified in config. Fixes 453.
    • Add _Parameters class to hold parameters.
    Changelog

    Sourced from flutter_native_splash's changelog.

    [2.2.15] - (2022-Nov-20)

    • Fix iOS background image build incorrectly when background dark image is used. Fixes #452, fixes #439.
    • Correct background image/color handling on web. Fixes #450.
    • Don't include dark styling in web if not specified in config. Fixes 453.
    • Add _Parameters class to hold parameters.
    Commits
    • b662516 Fix iOS background image build incorrectly when background dark image is used...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump flutter_native_splash from 2.2.9 to 2.2.14

    build(deps): bump flutter_native_splash from 2.2.9 to 2.2.14

    Bumps flutter_native_splash from 2.2.9 to 2.2.14.

    Release notes

    Sourced from flutter_native_splash's releases.

    v2.2.14

    • Don't update values-31 if there is no android_12 section in the config. Closes #447.
    • Additional fix for index.html getting extra blank lines. Fixes #430.

    v2.2.13

    Corrected Android 12 dark parameters not defaulting to light parameters. Thanks elliotrtd for the heads up on this issue.

    v2.2.12

    v2.2.11

    • Fixed Android 11 color issue. Fixes #429.
    • Fix index.html getting extra blank lines. Fixes #430.
    • Update the readme. Closes #431.
    Changelog

    Sourced from flutter_native_splash's changelog.

    [2.2.14] - (2022-Nov-07)

    • Don't update values-31 if there is no android_12 section in the config. Closes #447.
    • Additional fix for index.html getting extra blank lines. Fixes #430.

    [2.2.13] - (2022-Oct-30)

    • Corrected Android 12 dark parameters not defaulting to light parameters. Thanks elliotrtd for the heads up on this issue.

    [2.2.12] - (2022-Oct-23)

    [2.2.11] - (2022-Oct-09)

    • Fixed Android 11 color issue. Fixes #429.
    • Fix index.html getting extra blank lines. Fixes #430.
    • Update the readme. Closes #431.

    [2.2.10+1] - (2022-Sep-25)

    • Update bug report template.
    • Package housekeeping to stay up to date with Flutter.
    Commits
    • 0239914 Don't update values-31 if there is no android_12 section in the config. Clos...
    • a91dc4b Corrected Android 12 dark parameters not defaulting to light parameters. Tha...
    • e4b29f8 Updated readme and dependancies.
    • d03227c Add CI and resolve some lints and fix tests (#433)
    • 7d1472b Fixed Android 11 color issue. Fixes #429. Fix index.html getting extra blank...
    • 3e62d81 Update bug report template, Package housekeeping to stay up to date with Flut...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump go_router from 6.0.0 to 6.0.1

    build(deps): bump go_router from 6.0.0 to 6.0.1

    Bumps go_router from 6.0.0 to 6.0.1.

    Commits
    • 3ef0f63 [go_router] Fixes crashes when popping navigators manually (#2952)
    • 5773a70 [go_router_builder] Update to go_router 6 (#2977)
    • 84ec730 [pigeon]: Bump kotlin-gradle-plugin (#3015)
    • 7c025b1 update synced generated files to clean up prs (#3007)
    • e425eea [flutter_migrate] Start command and executables (#2735)
    • 70205c5 [pigeon] revert changelog revert (#2995)
    • 73637b8 [go_router_builder] ignore pubspec.yaml in ensure build test (#2984)
    • f4e6a14 [ci] Roll Flutter master to 7b850ef37500 (#2991)
    • 90c46d2 [pigeon] revert 3b5ae0070738103a80bb9ac12440dd69d598ad2c (#2987)
    • 3b5ae00 [pigeon] Relocates generator classes and updates imports (#2985)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump go_router_builder from 1.0.15 to 1.0.16

    build(deps): bump go_router_builder from 1.0.15 to 1.0.16

    Bumps go_router_builder from 1.0.15 to 1.0.16.

    Commits
    • 5773a70 [go_router_builder] Update to go_router 6 (#2977)
    • 84ec730 [pigeon]: Bump kotlin-gradle-plugin (#3015)
    • 7c025b1 update synced generated files to clean up prs (#3007)
    • e425eea [flutter_migrate] Start command and executables (#2735)
    • 70205c5 [pigeon] revert changelog revert (#2995)
    • 73637b8 [go_router_builder] ignore pubspec.yaml in ensure build test (#2984)
    • f4e6a14 [ci] Roll Flutter master to 7b850ef37500 (#2991)
    • 90c46d2 [pigeon] revert 3b5ae0070738103a80bb9ac12440dd69d598ad2c (#2987)
    • 3b5ae00 [pigeon] Relocates generator classes and updates imports (#2985)
    • 4331f3a [pigeon] wrap encodable lists in encodable value before reply (#2968)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump flutter_riverpod from 2.1.1 to 2.1.3

    build(deps): bump flutter_riverpod from 2.1.1 to 2.1.3

    Bumps flutter_riverpod from 2.1.1 to 2.1.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v0.9.0-preFix)
  • v0.9.0-preFix(Aug 10, 2022)

    🚀 Features

    • Update Flutter SDK from 2.10.5 to 3.0.5 #114, #150 , #172, #182, #194
    • リポジトリ一覧画面のUI/UXをよりよくする #112, #122, #130
    • リポジトリ詳細画面のUI/UXをよりよくする #132
    • 検索履歴保存機能+サジェスト機能 #160
    • go_router_builderの導入 #192
    • デスクトップUI対応 #224
    • ダークテーマ対応 #227

    🐛 Fixes

    • Flutter 3.0.0 (Dart 2.17.0) からカバレッジ測定でエラーが発生する #116

    👀 Others

    • README更新 #110, #166
    • ロガーパッケージを roggle に変更する #102
    • リファクタリング #104, #108, #145, #157, #181, #195, #225
    • 自動生成ファイルの diff をプルリクに表示しないようにする #120
    • VSCodeの環境構築 #124
    • CIワークフローを整理 #123
    • 自動テストのマルチOS化 #138
    • 自動テストの多言語対応 #140

    Full Changelog: https://github.com/susatthi/github-search/compare/v0.5.0-beta...v0.9.0-preFix

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0-beta(Apr 28, 2022)

    🚀 Features

    • Update Flutter SDK 2.10.5
    • アプリアイコンの作成(#24)
    • スプラッシュ画面の実装(#26)
    • macOSのサポート(#33)
    • Windowsのサポート(#41)
    • ロガー logger の導入(#61)
    • 多言語化パッケージ fast_i18n の導入(#71)
    • hive を利用したソート機能(#79)

    🐛 Fixes

    • README更新 (#31, #35, #91)
    • Web版のURLの # を消す(#44)
    • Github => GitHub の誤記修正(#37)
    • リポジトリ名を github-search に変更(#58)
    • importを相対パスに変更(#73)
    • リファクタリング(#75, #87, #89)
    • 軽微な修正(#77)

    👀 Others

    • GitHub Actions で静的解析&テスト(#29, #64)
    • APIドキュメントを GitHub pages で公開(#27, #51)
    • dependabot の導入(#54)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1-alpha(Apr 3, 2022)

  • v0.1.0-alpha(Apr 3, 2022)

Owner
Keyber Inc.
Keyber Inc.
Search Github repositories.

GitHub Search GitHub API を利用して GitHub のリポジトリを検索するアプリです。株式会社ゆめみのFlutterエンジニアコードチェックの要件を満たすよう実装しています。 本アプリを通して自分なりの最適なアーキテクチャを確立し、リファレンスコードにすることを目的にしていま

susa.keyber 13 Apr 28, 2022
Github-search - Allows users to search users on github Uses flutter

Github Search Github Search is a cross-platform mobile application powered by Flutter Framework and Github API. The application was built with simplic

Saul 3 Sep 13, 2022
Github-apps-flutter - Github Apps Build Using bloc 8.0 and Github API

Github_apps Inspiration This app is made to build using bloc 8.0 and github API.

Irvan Lutfi Gunawan 18 Apr 14, 2022
Dart package to get GitHub trending repositories and developers

github_trending A Dart library to get GitHub trending repositories and developers via github-trending-api. Installation Add github_trending as a depen

GitTouch 6 Oct 22, 2022
An open-source unofficial GitHub mobile client, that aims to deliver the ultimate GitHub experience on mobile devices.

DioHub for Github Summary Features Roadmap Support Screenshots Build Instructions Summary DioHub is an open-source unofficial GitHub mobile client, th

Naman Shergill 401 Jan 4, 2023
Flutter Github Following Application, Using Flutter Provider and Flutter HTTP to get data from Github API.

Flutter Github Following Application Watch it on Youtube Previous Designs Checkout my Youtube channel Installation Please remember, after cloning this

Mohammad Rahmani 110 Dec 23, 2022
A beautiful mod installer for minecraft supporting custom repositories and more.

argoninstaller ⚠️ ⚠️ THIS PROJECT IS STILL IN EARLY DEVELOPMENT ⚠️ ⚠️ A beautiful mod installer for minecraft supporting custom repositories and more.

Tricked 16 Aug 28, 2022
181011450390-FLUTTER-CHALLENGE - Example GitHub Search app built in Flutter & RxDart

Example GitHub Search app built in Flutter & RxDart Simple app using the Flutter

null 1 Jan 3, 2022
A google browser clone which is made by using flutter and fetching the google search api for the search requests.

google_clone A new Flutter project. Project Preview Getting Started This project is a starting point for a Flutter application. A few resources to get

Priyam Soni 2 May 31, 2022
Starlight search bar - Starlight search bar with flutter

starlight_search_bar If you find the easiest way to search your item, this is fo

Ye Myo Aung 1 Apr 20, 2022
An open-source app for GitHub, GitLab, Bitbucket, Gitea, and Gitee(码云), built with Flutter

GitTouch An open-source app for GitHub, GitLab, Bitbucket, Gitea and Gitee(码云), built with Flutter Installation Click badges above to install it from

GitTouch 1.3k Dec 28, 2022
Made with Clean architecture + TDD + GraphQL + flutter_bloc + CodeCov + GitHooks + GitHub Actions (CI/CD) and finally with 💙

Rick and Morty Info A simple app to demonstrate Clean Architecture with GraphQL and flutter_bloc Motivation In Martin Fowler's words, “Any fool can wr

Venkatesh Prasad 473 Dec 25, 2022
Testing Teams, Projects and general collaboration on Github

collaboration_test Testing Teams, Projects and general collaboration on Github Getting Started This project is a starting point for a Flutter applicat

null 1 Dec 3, 2021
A Github mobile app built in flutter

flutter-GitConnect Github mobile app built in flutter framwork. App preview:- Youtube Download App Screenshots Home Inbox Search Repositries Issues Pe

Sonu Sharma 131 Dec 31, 2022
GitHub Action that uses the Dart Package Analyzer to compute the Pub score of Dart/Flutter packages

Dart/Flutter package analyzer This action uses the pana (Package ANAlysis) package to compute the score that your Dart or Flutter package will have on

Axel Ogereau-Peltier 45 Dec 29, 2022
Easily build and deploy your Dart web app to GitHub pages

Run flutter build web or dart pub run build_runner build and put the output in another branch. An easy way to update gh-pages. Install $ dart pub glob

Kevin Moore 183 Dec 20, 2022
A Flutter application for viewing a rich feed of GitHub activity.

github_activity_feed A Flutter application for viewing a rich feed of GitHub activity. Project status: Public Preview: Version 0.8.2 Supported platfor

Reuben Turner 74 Nov 24, 2022
Config files for my GitHub profile.

lab2cuisine A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if t

Boseu Teera 0 Dec 27, 2021