[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9468":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":26,"discoverSource":27},9468,"magic-epaper-app","fossasia\u002Fmagic-epaper-app","fossasia","Magic ePaper App","",null,"Dart",1054,52,3,29,0,2,53.37,"Apache License 2.0",false,"main",[],"2026-06-12 04:00:44","\u003Cimg height=\"200px\" src=\".\u002Fassets\u002Fdocs\u002Fapp_icon.png\" align=\"right\" \u002F>\n\n# Magic ePaper\n![Github](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ffossasia\u002Fmagic-epaper-app?logo=github)\n\n**Magically Create and Transfer Content to NFC ePaper Badges**\n\nThe Magic ePaper app is an open-source Flutter application that lets users design and transfer content to a tri-color, battery-free NFC ePaper badge. The app features an intuitive UI with drawing tools, text input, emoji support, font customization, and image editing (rotation, brightness, contrast, filters optimized for ePaper such as Floyd–Steinberg and Atkinson dithers). It supports NFC-based reading\u002Fwriting of images and advanced NDEF data (text, URLs, vCards, app launch). A built-in Image Library stores processed images for quick transfers. Additional tools include QR\u002Fbarcode generation, employee ID, and price tag creation.\n\n## Download\n\n* [Latest Release Build](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fmagic-epaper-app\u002Ftree\u002Fapp) in the app branch\n\n## Permissions\n* **NFC**: For reading and writing data to the ePaper badge via NFC.\n* **Internet**: For network operations and updates.\n\n## Translations\n\nTranslators can support the project on Weblate here: https:\u002F\u002Fhosted.weblate.org\u002Fprojects\u002Ffossasia\u002Fmagic-epaper-app\u002F\n\n## Screenshots\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006651-982ad8f9-10b9-4b00-8557-668a13bec7a1.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006713-520c2f50-58d6-4ca0-8de5-d390b17cc1fd.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006714-2b84df7e-676d-461e-952c-5b693b8746dd.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006717-69c02fe1-d4eb-4785-9489-4557f5cef113.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006720-d136d1c2-925b-4a7c-9e2e-921a6427adab.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006722-b02cc29c-a77c-4003-bbdf-19f316b49644.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006727-2cd1238c-4519-4a95-a08e-2236f471f201.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006731-ed7e198a-6a2f-41d7-a8fe-ea527afcbd5a.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006733-95f2eac1-3eed-43b1-8686-5700342ef9d5.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006735-b8fb398d-7bc3-4f58-b009-e6db94606d35.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006736-6dafe90a-2dad-4fcb-83df-045dc535a961.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006741-a7f98a75-817b-4167-85ec-5a71e721c7a5.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006747-e2e46459-8317-4f34-b1ff-882f3daf51b5.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006751-8180f909-8168-4974-b56c-49904a4d2262.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006754-cf181974-eb51-4e86-b04f-8ea6674b46e5.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006757-2473ebfc-6528-4d86-bfeb-ba7c659febca.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006761-707b29c2-4ff5-4571-8f3c-7be85f2b242e.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\".\u002Fassets\u002Fdocs\u002F484006766-f1bbf0a6-f79a-4f77-8e12-719901b1081b.jpeg\" width=\"300\"\u002F>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"3\">\n      \u003Cimg src=\".\u002Fassets\u002Fdocs\u002Ffinal.png\" width=\"900\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Branch Policy\n\nWe have the following branches\n\n * **main**: All development goes on in this branch. If you're making a contribution, you are supposed to make a pull request to _main_. PRs to main branch must pass a build check on CI\u002FCD.\n * **app**: This branch contains the latest app builds and releases.\n * **version**: This branch stores the version information for the app builds (versionName and versionCode). This is used in our workflows for automatic versioning wherein the next version information is automatically fetched from this branch and used for building the app.\n * **fastlane-android**: This branch contains information and metadata used by fastlane to automate Android deployment.\n * **pr-screenshots**: This branch stores screenshots for every open pull request, which are shown in comments in every pull request.\n\n## Contributions Best Practices\n\nPlease read FOSSASIA's [Best Practices](https:\u002F\u002Fblog.fossasia.org\u002Fopen-source-developer-guide-and-best-practices-at-fossasia\u002F) before contributing. Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics. Here are some basics:\n\n* Single commit per pull request\n* For writing commit messages please read the [CommitStyle.md](docs\u002FcommitStyle.md).\n* Follow uniform design practices. The design language must be consistent throughout the app.\n* The pull request will not get merged until and unless the commits are squashed. In case there are multiple commits on the PR, the commit author needs to squash them and not the maintainers cherrypicking and merging squashes.\n* If the PR is related to any front end change, please attach relevant screenshots in the pull request description.\n* Before you join development, please set up the project on your local machine, run it and go through the application completely. Press on any button you can find and see where it leads to. Explore.\n* If you would like to work on an issue, drop in a comment at the issue. If it is already assigned to someone, but there is no sign of any work being done, please free to drop in a comment and start working on it.\n\n## Dev Container usage\n\nOpening this repository in VSCode, GitHub Codespaces or another supported editor\u002FIDE will allow the repository to be opened in a [Dev Container](https:\u002F\u002Fcontainers.dev\u002F).\n\nThe Dev Container contains all necessary dependencies and tools required to build, run and debug flutter applications.\n\n### How to connect via `adb`\n\n:warning: In case `adb` is already installed and running on the host it may need to be stopped before continuing.\n\nThis Dev Container allows several different methods of connecting to a device via `adb`:\n\n#### Entirely from inside the container (USB pass-through)\n\n:information_source: **Windows** and **MacOS** need a working **USB\u002FIP** setup. Read more in the official [Docker Desktop documentation](https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002Ffeatures\u002Fusbip\u002F) and in this [blog post](https:\u002F\u002Fblog.golioth.io\u002Fusb-docker-windows-macos\u002F).\n\nThe Dev Container bind-mounts `\u002Fdev\u002Fbus\u002Fusb\u002F` and sets the correct access controls for a seamless integration.  \\\nEnable [USB debugging](https:\u002F\u002Fdeveloper.android.com\u002Ftools\u002Fadb#Enabling) on your phone and try to find it via:\n\n```bash\nadb devices\n```\nIf it shows up, everything is ready and you can run `flutter run` to push a development version of the app onto your device.\n\n#### Using the host's `adb` server\n\nIf `adb` is already installed on the host, the tools in the Dev Container can be configured to use the host's `adb` server:\n\n1. Ensure the `adb` server is listening on **all interfaces**\n    1. If that is not the case, kill and restart it: `adb kill-server && adb -a server` (the `-a` instructs it to listen on all interfaces).\n1. Set or export the following environment variable before executing `adb` or `flutter run`: `ADB_SERVER_SOCKET=tcp:host.docker.internal:5037`\n1. You should now be able to list the devices connected via USB to the host\n\n#### Wireless connection\n\nAndroid 11 and higher support wireless debugging. Check out the [documentation](https:\u002F\u002Fdeveloper.android.com\u002Ftools\u002Fadb#wireless-android11-command-line) for more information.  \\\nFor this mode it is required that both the workstation and the device are on the **same network**.\n\n:information_source: This also works when developing inside **GitHub Codespaces**. In that case you can bring your device and the Codespace onto the same network by installing WireGuard, Tailscale or another overlay\u002Fmesh network on both the Codespace and your device.\n\nEnable Wireless debugging as per the [documentation](https:\u002F\u002Fdeveloper.android.com\u002Ftools\u002Fadb#wireless-android11-command-line), then **pair** `adb pair \u003CIP>:\u003CPORT>` and **connect** `adb connect \u003CIP>:\u003CPORT>` and you should be able to find your device via `adb devices`.\n\n## Table of Contents\n- [Getting Started](#getting-started)\n- [Assets](#assets)\n- [Localization](#localization)\n- [Installation Steps](#installation-steps)\n  - [Prerequisites](#prerequisites)\n  - [Clone the Repository](#clone-the-repository)\n  - [Install Dependencies](#install-dependencies)\n- [Running the Project](#running-the-project)\n\n## Getting Started\n\nThis project is a starting point for a Flutter application that follows the\n[simple app state management\ntutorial](https:\u002F\u002Fflutter.dev\u002Fto\u002Fstate-management-sample).\n\nFor help getting started with Flutter development, view the\n[online documentation](https:\u002F\u002Fdocs.flutter.dev), which offers tutorials,\nsamples, guidance on mobile development, and a full API reference.\n\n## Assets\n\nThe `assets` directory houses images, fonts, and any other files you want to\ninclude with your application.\n\nThe `assets\u002Fimages` directory contains [resolution-aware\nimages](https:\u002F\u002Fflutter.dev\u002Fto\u002Fresolution-aware-images).\n\n## Localization\n\nThis project generates localized messages based on arb files found in\nthe `lib\u002Fsrc\u002Flocalization` directory.\n\nTo support additional languages, please visit the tutorial on\n[Internationalizing Flutter apps](https:\u002F\u002Fflutter.dev\u002Fto\u002Finternationalization).\n\n## Installation Steps\n\n### Prerequisites\n\n##### Before setting up the project, ensure you have the following installed:\n\nFlutter SDK: Install from Flutter's official website.\n\nDart SDK: Included with Flutter, but verify installation using `dart --version`\n\nGit: Required for cloning the repository. Install from Git's official site.\n\nAndroid Studio or VS Code: Recommended IDEs for Flutter development.\n\nAndroid Emulator or Physical Device: For running the application.\n\n1. Clone the Repository\n```\ngit clone https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fmagic-epaper-app\ncd magic-epaper-app\n```\n\n2. Install Dependencies\n```\nflutter pub get\n```\n\n## Running the Project\n\n1. Run on an Emulator or Physical Device\n\nEnsure an emulator is running or a device is connected.\n\nExecute:\n```\nflutter run\n```\n2. Build the App (For production\u002Ftesting)\n```\nflutter build apk  # For Android\nflutter build ios  # For iOS (macOS required)\n```\n\n## LICENSE\n\nThe application is licensed under the [Apache License 2.0](\u002FLICENSE). Copyright is owned by FOSSASIA and its contributors.\n","Magic ePaper 是一个开源的 Flutter 应用程序，允许用户设计并将内容传输到三色无电池 NFC 电子纸徽章上。该应用提供了直观的用户界面，支持绘图工具、文本输入、表情符号、字体自定义以及图像编辑（旋转、亮度、对比度调整及优化的 Floyd–Steinberg 和 Atkinson 阶调处理）。它还支持通过 NFC 读写图像和高级 NDEF 数据（如文本、URLs、vCards、应用程序启动），并内置了一个图像库用于存储处理过的图像以实现快速传输。此外，该应用还具备生成二维码\u002F条形码、创建员工 ID 和价格标签等功能。Magic ePaper 适用于需要便捷地定制与更新电子纸徽章信息的各种场合，如会议、展览或办公环境。","2026-06-11 03:23:01","top_language"]