gskinnerTeam/flokk
A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
go to github for downloadFlokk
A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
Demo Builds
- Web: https://flokk.app
- Linux: https://snapcraft.io/flokk-contacts
- macOS: https://flokk.app/macos/Flokk_Contacts_v1.0.1.dmg
- Windows: https://flokk.app/windows/flokk-v1.0.1-signed.zip
Contributing
You are invited to improve Flokk Contacts! Submitting pull requests, answering and asking questions in the Issues page, and updating documentation are all ways you can contribute to the app.
Please note that although we are monitoring GitHub issues, we aren’t actively maintaining the codebase, so community involvement and contributions are really appreciated going forward. We’re aiming to review pull requests on a weekly basis.
Getting Set Up
Demo Builds
To preview the app you can download from the app store on your device by visiting:
https://flutter.gskinner.com/folio/#g-download
Installation
If you’re new to Flutter the first thing you’ll need is to follow the setup instructions.
Once Flutter is setup, you can use the latest stable
channel:
- Run
flutter channel stable
- Run
flutter upgrade
Once you’re on dev
and desktop is enabled, you’re ready to run the app:
flutter run -d windows
flutter run -d macos
flutter run -d linux
flutter run -d android
flutter run -d ios
flutter run -d web
If you re-start your IDE, you should also see a new launch option for your current desktop platform.
Client Keys
Google Sign In is required in order to run the app (unless running with cached data). The app uses the Google People API, and you will need to provide your own Google OAuth 2 client credentials in the /lib/api_keys.dart
file.
Follow the instructions here to enable the People API and create credentials:
- https://developers.google.com/people/v1/getting-started
- https://developers.google.com/people/v1/how-tos/authorizing
In your Google API Console, ensure you add the People API scope, “https://www.googleapis.com/auth/contacts”. Please see below for details: - https://developers.google.com/identity/protocols/oauth2/scopes#people
To optionally fetch social data for your contacts, add your own API keys for those as well:
- Twitter: https://developer.twitter.com/en/docs/basics/getting-started
- GitHub: https://developer.github.com/v3/guides/basics-of-authentication/
Although the Twitter and GitHub keys are optional, they are recommended. Otherwise the app will not be able to fetch tweets and GitHub calls will be subject to a rate limit (https://developer.github.com/v3/#rate-limiting).
Web Builds
If you’re building for web:
- Edit
/web/index.html
to include your web credentials (web client Id)<meta name="google-signin-client_id" content="YOUR_GOOGLE_SIGN_IN_OAUTH_CLIENT_ID.apps.googleusercontent.com">
. - This is needed for Google Sign In to work on web builds. For more details, see https://pub.dev/packages/google_sign_in_web
CORS Proxy
For Twitter support to work on web builds, it is necessary to use a CORS proxy. You can set up a proxy on your own domain, or else run a localhost instance with proxy/app.js
.
If setting up on your domain, ensure you have enabled https (https://letsencrypt.org/). Once you have the security certificate, edit proxy/app.js
and insert your cert and key. This is not necessary if running a localhost instance.
After the proxy is set up, edit services/twitter_rest_service.dart
to point to your running proxy instance (e.g. “https://my-proxy.com”, “http://localhost”, etc.)
For more information, see https://github.com/Rob--W/cors-anywhere
Running With Cached Data
If you simply want to see the app running, it is possible to run the app using cached data:
- Run the app at least once, to create your data folders
- Extract the contents of /sample_data.zip to the newly created data folder on your machine:
- Windows: \Users\[USER]\AppData\Roaming\flokk
- Linux: $HOME/.local/share/flokk-contacts
- macOS: /Users/[USER]/Library/Containers/app.flokk/Data/Library/Application Support/app.flokk
- Overwrite any files that are there
- Launch the app again, it should now sign in, and load with existing data.
- If you sign out, your saved data will be wiped and you will need to repeat the process.
Note: This is meant as a ‘read-only’ mode so you can quickly explore all the widgets and features of the app. Updates, deletes, etc are not expected to work.
Test & Build
Debug Builds
- Use
flutter run -d DEVICE_ID
to deploy a test build - To get a list of available DEVICE_ID, use
flutter run
- Typical values are:
windows
,linux
,macos
,chrome
- Add
--release
to deploy an optimized build
Release Builds
- Use
flutter build PACKAGE_TYPE
to build a release package - To get a list of available PACKAGE_TYPE, use
flutter build
- Typical values are
windows
,linux
,apk
,ios
- In order to build the snap package one must first run
lxd init
on your system if you haven’t already.
** Then executesnapcraft --use-lxd
to create the snap from the flutter build
Force Log In
- The app uses a
kForceWebLogin
flag to force release builds to skip the oauth screen. - Add
--dart-define=flokk.forceWebLogin=true
to your build command to enable - E.g.
flutter build web --dart-define=flokk.forceWebLogin=true
Desktop Runners
The /linux and /windows folders contain modifications and should not be upgraded to upstream without first verifying that each plugin works correctly with the new upstream code and any modifications are made.
Since the desktop runners for this project may contain modifications, upgrades should not be made without first verifying that every plugin and embedder can be upgraded and that they remain compatible after an upgrade. Hopefully this will not be as much of an issue once Flutter’s desktop support becomes more mature.
–
Happy Flokking!
![](/images/banner-woo.jpg)
related excellent projects recommendation download
AppFlowy
47859
AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and Rust.
localsend
33797
An open-source cross-platform alternative to AirDrop
spotube
23772
🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
revanced-manager
15035
💊 Application to use ReVanced on Android
gsy_github_app_flutter
14559
Flutter 超完整的开源项目,功能丰富,适合学习和日常使用。GSYGithubApp系列的优势:我们目前已经拥有Flutter、Weex、ReactNative、kotlin 四个版本。 功能齐全,项目框架内技术涉及面广,完成度高,持续维护,配套文章,适合全面学习,对比参考。跨平台的开源Github客户端App,更好的体验,更丰富的功能,旨在更好的日常管理和维护个人Github,提供更好更方便的驾车体验Σ( ̄。 ̄ノ)ノ。同款Weex版本 : https://github.com/CarGuo/GSYGithubAppWeex 、同款React Native版本 : https://github.com/CarGuo/GSYGithubApp 、原生 kotlin 版本 https://github.com/CarGuo/GSYGithubAppKotlin
dio
12249
A powerful HTTP client for Dart and Flutter, which supports global settings, Interceptors, FormData, aborting and canceling a request, files uploading and downloading, requests timeout, custom adapters, etc.
gopeed
11832
A modern download manager that supports all platforms. Built with Golang and Flutter.
bloc
11441
A predictable state management library that helps implement the BLoC design pattern
getx
9899
Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.
flame
8846
A Flutter based game engine.
flutter_deer
7595
🦌 Flutter 练习项目(包括集成测试、可访问性测试)。内含完整UI设计图,更贴近真实项目的练习。Flutter practice project (including integration testing and accessibility testing). Contains complete UI design drawings for a more realistic practice project.
fish-redux
7343
An assembled flutter application framework.
hiddify-next
7232
Multi-platform auto-proxy client, supporting Sing-box, X-ray, TUIC, Hysteria, Reality, Trojan, SSH etc. It’s an open-source, secure and ad-free.
ente
6686
Fully open source, End to End Encrypted alternative to Google Photos and Apple Photos
fl_chart
6451
FL Chart is a highly customizable Flutter chart library that supports Line Chart, Bar Chart, Pie Chart, Scatter Chart, and Radar Chart.
pixez-flutter
6360
一个支持免代理直连及查看动图的第三方Pixiv flutter客户端
Flutter-Responsive-Admin-Panel-or-Dashboard
6355
Responsive Admin Panel or Dashboard using Flutter
aidea
6021
AIdea 是一款支持 GPT 以及国产大语言模型通义千问、文心一言等,支持 Stable Diffusion 文生图、图生图、 SDXL1.0、超分辨率、图片上色的全能型 APP。
riverpod
5828
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
pikapika
5463
美观易用且无广告的漫画和游戏客户端,同时支持MacOS,Windows,Android,iOS。