本站已进行升级,老用户可以通过找回密码登录。

Flutter Trending

Flutter 趋势

汇总 GitHub、Dev.to、freeCodeCamp、Hacker News、Medium、Reddit 的近期热门内容。

更新时间
06/08 08:17
收录条目
81

GitHub

20 条

Dart 与 Flutter 相关仓库热度

更新于 06/08 08:17

Dev.to

12 条

开发者文章与项目分享

更新于 06/08 08:17
Add Sign in with ToroPass to Your Flutter App on Toronet
06/08 00:50

Add Sign in with ToroPass to Your Flutter App on Toronet

Farouk Bello

If you are building a Flutter app on Toronet, one of the hardest things to get right is identity. You need a way to: verify that a user really controls a Toro wallet request access to identity data with explicit consent avoid collecting raw KYC details directly in every app return the result cleanly back into your app That is exactly what ToroPass is for. ToroPass is a Toronet-native identity flow made up of: a wallet app for users a published Flutter SDK package for third-party apps: toropass_client The important part for Flutter developers is that you do not need to rebuild the whole stack to use it. You can start with the published SDK package and the released ToroPass Wallet APK today. toropass_client is the Flutter integration layer for ToroPass. It handles: launching ToroPass Wallet from your app sending the authorization request listening for the callback into your app validating request state exchanging the authorization code fetching the approved ToroPass profile In practice, it gives you a "Sign in with ToroPass" flow for Flutter apps on Toronet. At a high level: Your Flutter app starts an identity request. ToroPass Wallet opens. The user approves or denies the request. ToroPass Wallet deep-links back into your app. Your app exchanges the code and reads the approved profile. This keeps consent inside the wallet and keeps app integration lightweight. Add the package to your pubspec.yaml: dependencies: toropass_client: ^0.1.1 Then run: flutter pub get Pub.dev package: https://pub.dev/packages/toropass_client Your app needs a callback URI so ToroPass Wallet can route the user back after approval or denial. Example: myapp://oauth/callback You will register this in your app and use the same redirect URI when creating your ToroPass OAuth app. Create a ToroPassClient: final client = ToroPassClient( config: ToroPassClientConfig( appName: 'Example App', clientId: 'your_client_id', redirectUri: Uri.parse('myapp://oauth/callback'), scopes: const { ToroPassScope.kycStatus, ToroPassScope.wallet, }, ), ); Then trigger the one-call flow: final result = await client.verifyIdentity(); switch (result) { case ToroPassAuthSuccess(:final token, :final profile): debugPrint('Access token: ${token.accessToken}'); debugPrint('Wallet address: ${profile.wallet.address}'); debugPrint('TNS name: ${profile.wallet.tnsName}'); case ToroPassAuthDenied(): debugPrint('User denied access.'); case ToroPassAuthCancelled(): debugPrint('User cancelled the flow.'); case ToroPassAuthTimeout(): debugPrint('ToroPass did not return in time.'); case ToroPassAuthTransportError(:final message): debugPrint(message); case ToroPassAuthStateMismatch(): debugPrint('Callback state mismatch.'); case ToroPassAuthorizationCodeReceived(): break; } That is the easiest path if you want a single entry point. If you want to separate wallet launch, callback handling, and token exchange: final request = client.createAuthorizationRequest(); final launched = await client.launchWallet( state: request.state, ); if (launched == null) { debugPrint('ToroPass Wallet is unavailable.'); return; } final callback = await client.waitForCallback(launched); if (callback case ToroPassAuthorizationCodeReceived(:final code)) { final session = await client.exchangeAuthorizationCode(code: code); final profile = await client.fetchProfile( accessToken: session.token.accessToken, ); debugPrint(profile.wallet.address); } This is useful if your app needs finer-grained control over the authorization lifecycle. Your app needs two things: a callback URI scheme like myapp://oauth/callback wallet-scheme discovery for toropass Android Register your callback URI in AndroidManifest.xml: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="myapp" android:host="oauth" android:path="/callback" /> </intent-filter> Add a visibility query so the app can detect ToroPass Wallet: <queries> <intent> <action android:name="android.intent.action.VIEW" /> <data android:scheme="toropass" /> </intent> </queries> Register your callback URI in Info.plist: <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>myapp</string> </array> </dict> </array> Allow wallet discovery: <key>LSApplicationQueriesSchemes</key> <array> <string>toropass</string> </array> To complete the flow end to end, you still need: ToroPass Wallet installed on the device an OAuth app created through ToroPass Wallet your real clientId your app redirect URI Wallet APK: https://github.com/maverick0x/toropass/releases/download/wallet-v1.0.1/toropass-wallet-v1.0.1.apk Without a shared identity laye

flutterweb3oauthmobiledev
I Revived mQuiz: A Gamified Quiz App Built to Make Learning Addictive
06/08 00:01

I Revived mQuiz: A Gamified Quiz App Built to Make Learning Addictive

Akinwumi Michael

This is a submission for the GitHub Finish-Up-A-Thon Challenge MQuiz is a gamified mobile quiz app built to make learning, trivia, and exam-style practice more engaging. The project started as an older quiz app idea, but it needed a serious rebuild to become something that could feel like a real mobile product. For this challenge, I revived MQuiz by moving it into a new Flutter app, rebuilding the experience with a cleaner structure, and connecting it to a modern backend. The new MQuiz app is built around the idea that quizzes should feel more like a game. Instead of only answering questions, users can progress, earn rewards, manage lives, use boosters, compete with others, join leagues, enter contests, and track their performance. The current version includes: Flutter mobile app built in a new apps/mobile/ project NestJS API integration Firebase authentication Google sign-in Apple sign-in Phone OTP login Guest mode Profile setup flow Game-style home dashboard Category and subcategory quiz flow Lives system Coins system XP and stage progress Daily challenge card Booster system Booster store Countdown timer during quizzes Multiple-choice questions Fun & Learn question mode Guess the Word question mode Image-supported questions Quiz result screen Share result feature Mystery box reward trigger Progress map Leaderboard Profile screen Badges display Referral code and native share Coin history Paystack payment flow Apple in-app purchase setup Live battle mode with Firestore sync Battle result screen League list, detail, quiz, and leaderboard Contest list, detail, quiz, and result flow Sponsor banner support Active contest banner Clean Material 3 design system Light and dark theme support The goal of MQuiz is to turn learning into a fun, competitive, and repeatable experience for students, quiz lovers, and casual learners. APK Download: Download MQuiz APK Demo Video: Watch MQuiz Demo GitHub Repository: View Source Code Screenshots: MQuiz was not originally in the shape I wanted it to be. The older version was based on an existing CodeCanyon-style app structure. It gave me a starting point, but it was not the clean, scalable, original product I wanted to submit or continue building long-term. The old version had several limitations: The structure was not ideal for a full product rebuild The app did not fully represent the experience I wanted for users Some features were either incomplete or not connected properly The user experience did not feel modern enough The codebase needed a cleaner architecture The app needed a stronger game-like flow It was not ready as a primary mobile product for both Android and iOS For the GitHub Finish-Up-A-Thon Challenge, I decided not to just polish the old app. I used the opportunity to properly revive MQuiz by rebuilding it as a new Flutter mobile app. The new app now lives inside apps/mobile/, while the older lib/ app is being retired. The new Flutter app is now the primary delivery version for both Android and iOS. That was the real comeback: MQuiz moved from an unfinished and older-style quiz app into a more complete, modern, game-like mobile experience. The biggest change was rebuilding the app around a cleaner product experience. Instead of only having a basic quiz flow, I rebuilt MQuiz around the kind of features that make users come back: Lives Coins Boosters Streaks XP Stage progress Daily challenges Leagues Contests Leaderboards Battles Profile stats Badges Referrals Rewards I also connected the app to backend endpoints so the experience can become more server-driven and scalable. The new backend integration includes endpoints for: Lives Boosters Progress Payments Quiz data User profile Leaderboard Leagues Contests Battle flow The mobile app now uses a more organized feature-based structure, including: Auth Home Quiz Progress Map Lives Boosters Battle Leaderboard Profile Store Leagues Contests This made the project easier to maintain and easier to continue after the challenge. MQuiz supports multiple ways for users to get started: Google sign-in Apple sign-in Phone OTP Guest mode First-time profile setup This makes onboarding easier because users can choose the sign-in method that works best for them. The home screen was rebuilt to feel more like a mobile game dashboard. It includes: Greeting header Coins counter Lives counter XP progress Stage label Category grid Daily challenge card Active contest banner Sponsor banner Battle call-to-action The goal was to make the app feel exciting from the first screen. The quiz feature supports different question experiences, including: Standard multiple choice Image-supported questions Fun & Learn mode Guess the Word mode Countdown timer Booster usage Result summary Score Accuracy Coins earned Share result option The quiz experience is designed to be simple enough for casual users but structured enough to support future exam practice and competitive learning. To make the app more engaging, MQuiz includes a lives system and booster

devchallengegithubchallengeaiflutter
I wasted 6 weeks on Google Play's closed testing. Here's what finally worked.
06/07 21:21

I wasted 6 weeks on Google Play's closed testing. Here's what finally worked.

Chakshu Software Creation

I need to vent. And maybe save someone else from the same nightmare. I'm a solo Android dev. I've been working on my app for about 4 months — evenings, weekends, the usual indie grind. I finally got to the point where I was ready to publish on the Play Store. Then I hit the closed testing wall. If you haven't dealt with this yet — Google now requires you to run a 14-day closed test with at least 20 testers who are actually engaged. Not just opted in. Not just installed once. Google tracks whether your testers are genuinely using your app over those 14 days. Sounds reasonable, right? It is. Until you try to find 20 people who will reliably open your app every day for two weeks. I asked everyone I know. Got about 12 people to opt in. Most of them installed the app on Day 1. A few opened it again on Day 2. By Day 5, maybe 3 people were still using it. The rest? Life happened. They forgot. They got busy. One person told me "yeah I opened it" — their phone had auto-uninstalled it because of storage. Day 14. I submitted for production access. Rejected. "Your testers did not show sufficient engagement..." Cool. Two weeks wasted. I went to r/AndroidDev, various Discord servers, those "I'll test yours if you test mine" threads. Got 25 people to sign up this time. The problem? Most of them did exactly what I feared — installed once to bump their own numbers, then removed the app. I was in an illusion that people were testing. They weren't. Day 15. Submitted again. Rejected again. Same message. Testers not engaged. Another two weeks gone. At this point I've spent over a month just trying to get past closed testing. Haven't written a single line of new code. Here's the thing that drove me crazy — I had zero visibility. I couldn't tell: Who actually opened the app today? Who installed it once and forgot? Is anyone even using it on Day 7, 8, 9? How long are sessions lasting? 2 seconds or 2 minutes? I was flying blind. You submit testers, pray for 14 days, and find out the result. That's it. No dashboard, no analytics, no feedback loop. I could've replaced inactive testers on Day 3 if I'd known they weren't opening the app. Instead I waited until Day 15 to find out I failed. While doom-scrolling GitHub one night (as you do), I stumbled on this thing called TestPulse. It's basically a small SDK you drop into your app during the testing phase that tracks tester engagement — sessions, screen visits, duration, which testers are active, which ones ghosted. It has a web dashboard where you can see all of this in real time. I was skeptical. But at this point I was desperate. Adding it was stupidly simple: When testers open the app for the first time, a little dialog asks for their name so you can identify them. After that, the SDK silently tracks sessions, screens, and duration. Data gets batched locally and synced to the backend every 60 seconds. I built a new APK with TestPulse included, uploaded it to closed testing, and recruited testers again — this time from a mix of friends and online communities. The difference? I could actually see what was happening. Day 1: 22 testers installed. 20 opened it. Good start. Day 2: 18 testers active. The dashboard showed 2 people hadn't opened it since Day 1. Day 3: Those 2 still inactive. I messaged them on WhatsApp — one had phone issues, one had just forgotten. Both opened it that day. Day 5: 3 testers had dropped to < 30 second sessions. I could see they were just opening and closing the app. I reached out and asked them to actually try the features. Day 7: I could see the engagement graph trending in the right direction. The dashboard gave me an "engagement score" which was at 78/100 — labeled "Good." Day 10: One tester went inactive. I recruited a replacement immediately instead of waiting until Day 15 to find out. Day 14. Submitted for production access. Approved. ✅ I literally teared up. Not because the app was approved, but because this nightmare was finally over. The real issue was never about finding 20 testers. It was about knowing which testers are actually engaged so you can take action. A few things I learned: Most people won't test your app for 14 straight days. It's not malicious — they just forget. Life happens. You need visibility, not more testers. 15 engaged testers beat 30 ghost testers every time. Google checks DAU (Daily Active Users), session length, and screen navigation. A tester who opens your app for 2 seconds and closes it doesn't count as "engaged." Replace inactive testers EARLY. If someone hasn't opened the app by Day 3, they're not coming back. You need to know this on Day 3, not Day 15. The tester exchange communities (Reddit, Discord) are hit or miss. Some people genuinely help. Many just install once to get you to reciprocate, then uninstall. Without tracking, you can't tell the difference. For Flutter devs If you're wondering — yes, it works with Flutter too. Flutter apps are regular Android apps under the hood. You add the depen

androidgoogleplayfluttermobile
Showcasing StorySync: My Open-Source Manga & Manhwa Tracker Built with Flutter
06/07 20:44

Showcasing StorySync: My Open-Source Manga & Manhwa Tracker Built with Flutter

Aamir Ansari

Hi everyone! 👋 This is my first time sharing a project with the community, and I'd love to showcase something I've been working on over the past few months. StorySync is an open-source manga and manhwa tracking application built with Flutter. I created it to provide a clean, modern, and local-first way to track reading progress without relying on cloud services or unnecessary complexity. Since the initial release, I've continued improving the app and recently added some features that I'm excited to share. 📱 Native Android Home Screen Widgets One of the features I wanted from the beginning was the ability to check reading progress without opening the app. StorySync now includes native Android home screen widgets that synchronize with local app data and display reading information directly on the home screen. Implementing this feature involved integrating Flutter with native Android components and ensuring that widget data stays synchronized with the application's local database. 🎬 First-Time User Demo & Onboarding To make the experience more welcoming for new users, I added a first-time onboarding and demo flow. The onboarding introduces the main features of StorySync and helps users get started quickly while keeping the experience simple and lightweight. ✨ Other Features StorySync is completely open source, and I'm always looking for feedback and suggestions. GitHub Repository: https://github.com/amr0-1/StorySync Whether you're a manga reader, manhwa reader, Flutter developer, Android developer, or open-source contributor, I'd love to hear your thoughts on the project. Thanks for taking the time to check it out! 🚀``

aiflutteropensourcemanhwa
Stop Fighting Flutter TextFields: Master InputDecoration in 5 Minutes
06/07 20:09

Stop Fighting Flutter TextFields: Master InputDecoration in 5 Minutes

Flutter Sensei

We’ve all been there: you drop a default TextField into your Flutter layout, and it immediately throws off your entire design. The default padding is too bulky, the borders look like a basic tutorial app, and trying to shrink the height with a SizedBox just clips your text. You don’t need a massive external UI package to fix this. You just need to tame InputDecoration. Here is the quick blueprint to building clean, production-grade text inputs. isDense) By default, Flutter inputs add a ton of internal vertical padding. If you try to force a smaller height using constraints, your cursor and text will align weirdly. Instead, use isDense: true. This instantly shrinks the font's bounding box, allowing your custom contentPadding to take perfect control: TextFormField( decoration: InputDecoration( isDense: true, // Crucial for tight, crisp layouts contentPadding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 12.0), filled: true, fillColor: Colors.grey[50], ), ) Don't rely on global theme defaults for your form states. To make an input feel premium, you need to explicitly map out how it behaves when enabled, focused, or throwing an validation error: InputDecoration( // The idle state enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10.0), borderSide: BorderSide(color: Colors.grey[200]!, width: 1.5), ), // When the user is typing focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10.0), borderSide: BorderSide(color: Colors.blue, width: 2.0), ), // Validation failure state errorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10.0), borderSide: BorderSide(color: Colors.red, width: 1.5), ), ) If you copy and paste a 40-line InputDecoration across five different entry screens, your future maintenance will be a living nightmare. Abstract it immediately into a stateless widget that exposes only what changes (like controllers, validators, and labels): class CustomTextField extends StatelessWidget { final TextEditingController controller; final String hintText; final String labelText; final String? Function(String?)? validator; const CustomTextField({ super.key, required this.controller, required this.hintText, required this.labelText, this.validator, }); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(labelText, style: TextStyle(fontWeight: FontWeight.w600)), const SizedBox(height: 6.0), TextFormField( controller: controller, validator: validator, decoration: InputDecoration( isDense: true, // ... add your custom borders and padding here ), ), ], ); } } Now you can call a unified, pixel-perfect input anywhere in your app with just a few clean lines. Mastering text inputs is just a tiny step toward building software that looks and feels premium. If you want to stop guessing your way through layout styling and learn how to craft clean, responsive design systems from scratch, we’ve got you covered. We build real, production-ready apps using industry-standard design workflows, advanced state layouts, and modern Agentic AI coding tools that handle the boilerplate while you focus on system architecture. 👉 Get the full UI system breakdowns and architecture guides at Flutter Sensei

beginnersflutterandroidprogramming
How to Integrate AI into Your Flutter App — A Complete Guide
06/07 19:50

How to Integrate AI into Your Flutter App — A Complete Guide

Devansh Verma

Building AI-powered Flutter apps used to mean managing multiple APIs, handling different SDKs, and reinventing the wheel for every project. Today, there are better ways. In this guide, we'll explore every approach to adding AI to Flutter — from simple cloud APIs to sophisticated on-device inference — and show you which to use when. Flutter developers want to add AI, but face fragmentation: Different API shapes for each provider (Gemini, OpenAI, Claude) No standard way to switch between cloud and on-device Tool calling, memory, and safety aren't built in Vendor lock-in if you choose one provider Simplest approach — call cloud APIs directly: import 'package:google_generative_ai/google_generative_ai.dart'; final model = GenerativeModel( model: 'gemini-1.5-flash', apiKey: 'YOUR_KEY', ); final response = await model.generateContent([ Content.text('What is 1337 * 42?') ]); print(response.text); Pros: Quick, minimal code Cons: Only one provider, no tool calling, no memory, vendor lock-in Use Firebase ML Kit: final vision = FirebaseVision.instance; final imageLabeler = vision.imageLabeler(); final labels = await imageLabeler.processImage(image); Pros: Built into Firebase ecosystem Cons: Limited to Google models, no LLMs, no multi-provider support Run Gemma locally: import 'package:flutter_gemma/flutter_gemma.dart'; final gemma = Gemma(); await gemma.loadModel('gemma-2b'); final response = await gemma.generateText('Hello'); print(response); Pros: Full privacy, no API calls Cons: Slow on older devices, large model files, limited model selection genesis_ai_sdk) Use a multi-provider SDK: import 'package:genesis_ai_sdk/genesis_ai_sdk.dart'; // Start with Gemini final agent = GenesisAgent( provider: GeminiProvider(apiKey: 'YOUR_KEY'), tools: [GenesisTools.calculator], ); final response = await agent.chat('What is 1337 * 42?'); print(response); // Switch to Ollama with ONE line change final agentLocal = GenesisAgent( provider: OllamaProvider(model: 'llama3.2'), tools: [GenesisTools.calculator], ); Tool calling, memory, and safety all built in. Feature Direct API Firebase ML On-Device Unified SDK Multiple Providers ❌ ❌ ⚠️ ✅ Tool Calling ❌ ❌ ❌ ✅ Persistent Memory ❌ ❌ ❌ ✅ Safety Guards ❌ ❌ ❌ ✅ Privacy (On-Device) ❌ ❌ ✅ ✅ Cloud Support ✅ ⚠️ ❌ ✅ Setup Complexity Low Medium Medium Low final agent = GenesisAgent( provider: GeminiProvider(apiKey: 'key'), tools: [ searchFlights(), bookHotel(), getWeather(), ], ); await agent.chat('Plan a trip to Tokyo for 3 days under $2000'); final router = SmartRouter( primary: OllamaProvider(model: 'mistral'), // Local secondary: OpenAIProvider(apiKey: 'key'), // Fallback ); final agent = GenesisAgent(provider: router); final agent = GenesisAgent( provider: GemmaProvider( modelId: 'gemma-2b', modelPath: await GenesisHubPlatformPaths.platformModelsDir(), ), memory: HiveMemoryStore(sessionId: 'user_123'), ); Use Direct API calls if: You need just one provider (Gemini, OpenAI) Simple, lightweight integration Use Firebase ML if: You're already in the Firebase ecosystem Only need vision/speech tasks Use On-Device if: Privacy is non-negotiable Users have no internet Can accept slower responses Use a Unified SDK if: You want flexibility (cloud + on-device) Need tool calling and memory Want to avoid vendor lock-in Building production apps Multi-provider support means you can start with cloud (fast development) and switch to on-device later (privacy/cost): dependencies: genesis_ai_sdk: ^0.1.1 Then pick your provider and go: // Cloud: Gemini, OpenAI, Claude, HuggingFace // Local: Ollama, Gemma, GGUF // Automatic: Fallback between them final agent = GenesisAgent(provider: YOUR_CHOICE); Platform support: Android, iOS, macOS, Windows, Linux, Web. Integrating AI into Flutter apps is no longer complicated. You have options: Simple projects? Direct API calls. Firebase projects? Firebase ML. Privacy-critical? On-device models. Everything else? Use a unified SDK. The future of Flutter AI development isn't picking one provider — it's having the flexibility to use the right tool for the right situation. genesis_ai_sdk on pub.dev GitHub Platform Setup Guide

aifluttermobiletutorial
I learned how to build an AI wrapper by shipping a real app
06/07 12:06

I learned how to build an AI wrapper by shipping a real app

Renee Chung

I'm not an AI researcher. I'm a backend developer with 16 years of Laravel and PHP experience who wanted to build something with AI. Simple Plate is an AI recipe generator. Tell it what ingredients you have, your dietary preferences and cuisine mood, and it generates three recipe ideas for you. Simple problem. Simple solution. What I didn't expect was how much I'd learn about working with AI APIs by actually shipping something real. The core AI integration is straightforward: dartfinal response = await openai.chat.completions.create( model: 'gpt-4o-mini', messages: [ {'role': 'system', 'content': systemPrompt}, {'role': 'user', 'content': userPrompt}, ], ); That's it. The API call itself is not the hard part. The hard part is getting consistent, useful output. My prompts evolved significantly: First version: vague, inconsistent results Added dietary restrictions: better but still repetitive Added cuisine mood: more variety Added avoid list for recent recipes: solved repetition Added pantry scoped history: solved repetition properly The prompt is where 80% of the real work lives in an AI wrapper. Honest truth — the OpenAI integration took a day. Everything else took weeks: Apple App Store: 8 rejections before approval Email verification with Supabase and custom SMTP Deep linking on Android RevenueCat subscription setup across iOS and Android UTC timezone bugs in recipe scheduling Image generation and caching in Supabase storage Start with the prompt engineering earlier. I spent too long on UI before nailing the core AI output quality. The prompt is your product — treat it that way. Simple Plate is live on both the App Store and Google Play. Built solo in about a month using Flutter, Supabase, OpenAI, and RevenueCat. Zero subscribers so far. But it's real, it's live, and I learned more about AI integration by shipping it than I would have from any tutorial. Sometimes the best way to learn is to just build something real. Apple Store | Google Play Store

flutteraimobileprogramming
David Stark: Top High-Paying Roles
06/07 10:27

David Stark: Top High-Paying Roles

David Stark

👋 Hello Architects & Elite Engineers, The market is shifting. We are seeing a surge in MOBILE roles this week. We don't do "Easy Apply". Our internal gatekeeper just processed 200+ verified remote jobs from our partner network. To get these jobs, you must pass the architecture audit. Here are the Top 5 roles worth your time today.** 👇 [Banco de Talentos] Pessoa Desenvolvedora Backend Pleno 🏢 Cubos Tecnologia | 💰 Competitive | 📍 Remote Could you walk us through your experience with this tech stack? Tech Stack: .io Sobre a Cubos: Existimos para transformar a realidade ao nosso... 👉 Apply & View Full Salary iOS Developer 🏢 nooro | 💰 Competitive | 📍 Remote Could you walk us through your experience with this tech stack? Tech Stack: WHO ARE WE? At nooro, we're revolutionizi... 👉 Apply & View Full Salary Staff Software Engineer, Product (Campinas) 🏢 LawnStarter | 💰 USD $80,000–$100,000 annual base | 📍 Remote LawnStarter relies heavily on AI agents for code generation. Imagine a scenario where an AI agent introduces a subtle security vulnerability (e.g., a cross-site scripting flaw) into a critical user-facing feature. How would you design a system to detect and mitigate such vulnerabilities before they impact users? Consider aspects of code review, automated testing, and runtime monitoring. Tech Stack: This is a remote role for candidates located in Campinas (Brazil) </... 👉 Apply & View Full Salary Staff Software Engineer, Product (São Paulo) 🏢 LawnStarter | 💰 USD $80,000–$100,000 | 📍 Remote You're tasked with migrating a critical API endpoint used by both the customer-facing mobile app and the pro-facing web app to a new, AI-generated microservice written in a different language. The existing endpoint has a high traffic volume and any downtime or performance degradation would directly impact revenue. Describe your technical approach, including considerations for Infrastructure as Code, Cloud Security, SRE principles, and Scalability, while minimizing risk. Tech Stack: <span style="box-sizing: border-box; border: 0px solid; font-weight: 600; letter-spacing: 0.75px;... 👉 Apply & View Full Salary Staff Software Engineer, Product (Porto Alegre) 🏢 LawnStarter | 💰 USD $80,000–$100,000 | 📍 Remote Imagine you are tasked with migrating a critical database from an on-premise solution to AWS RDS using Infrastructure as Code. The database contains sensitive customer data, and the migration must be performed with minimal downtime. Detail the IaC strategy you would employ, focusing on security, scalability, and rollback capabilities. How would you integrate automated security checks into your IaC pipeline to prevent misconfigurations and vulnerabilities during deployment, and what metrics would you monitor to ensure a successful migration and ongoing database performance? Tech Stack: This is a remote role for candidates lo... 👉 Apply & View Full Salary 👉 View the full board of 50+ New Jobs here ⚔️ 0 HR Interviews. 1 Architecture Test. Don't let your CV rot in an inbox. Pick a high-paying remote role, submit your architecture, and if you score > 7.0, you go straight to the decision-maker. 👉 Bypass HR Now

mobileiosandroidflutter
Building TUIs with Dart has never been easier
06/07 01:00

Building TUIs with Dart has never been easier

Dominik Roszkowski

Ever since Norbert announced Nocterm, I wanted to use it for myself. I played a bit at first, but only recently with the help of LLMs and amazing documentation I was able to build something usable. I first started with simple disk_analyzer utility. It scans the disk and shows big folders and files. Main window Treemap I guess I need to drop _cli now as it’s a TUI. dart pub global activate disk_analyzer_cli # or brew tap orestesgaolin/tap brew install disk_analyzer_cli I often chain my PRs and have a few scripts to synchronize them all. However, when I worked with my colleagues in the same chain, I didn’t want them to have to go through that same process. So I spinned up nocterm again and built a git chain synchronization tool. GitHub is working on a proper UI for that called GitHub Stacked PRs. Before sync During sync dart pub global activate git_chain # or brew tap orestesgaolin/tap brew install git_chain Another little tool called git_branches resulted from me having to delete over 100 stale branches. We merge branches to main with squashing so they just linger in my local git workspace. I didn’t want to remove them blindly, so simple pick and choose TUI was the best solution. Main screen Delete screen Next up… merge conflict resolution tool maybe? dart pub global activate git_branches # or brew tap orestesgaolin/tap brew install git_branches If you haven’t tried yet, give nocterm a try.

fluttertuinoctermai
I Built a Flutter Package for Turkish-Specific Form Validation
06/06 19:45

I Built a Flutter Package for Turkish-Specific Form Validation

Ahmed

I Built a Flutter Package for Turkish-Specific Form Validation If you've ever built a Flutter app targeting Turkish users, you know the pain. You need to validate a TC Kimlik No — there's no package for that. You need to format a Turkish IBAN — you end up writing your own regex. You want a proper ₺1.250,50 currency format — good luck finding something ready-made. So I built it myself: turkish_validators TC Kimlik No has a real checksum algorithm behind it — it's not just "is it 11 digits." This package validates the full algorithm: bool isValid = TcKimlik.validate('12345678901'); // Drop it straight into a TextFormField TextFormField( validator: TcKimlik.formValidator, ) Validates TR IBANs using the MOD-97 standard and formats them for display: bool isValid = TurkishIban.validate('TR330006100519786457841326'); String formatted = TurkishIban.format('TR330006100519786457841326'); // → TR33 0006 1005 1978 6457 8413 26 TextFormField( validator: TurkishIban.formValidator, ) Handles both 0532... and +9053... formats, plus clean formatting for display: bool isValid = TurkishPhone.validate('05321234567'); // true bool isValid2 = TurkishPhone.validate('+905321234567'); // true String formatted = TurkishPhone.format('05321234567'); // → 0532 123 45 67 Proper Turkish number format with dot-as-thousands and comma-as-decimal: String price = TurkishLira.format(1250.5); // → ₺1.250,50 String price2 = TurkishLira.format(1250.5, showSymbol: false); // → 1.250,50 double? amount = TurkishLira.parse('₺1.250,50'); // → 1250.50 dependencies: turkish_validators: ^0.0.3 That's it. No extra dependencies — just Flutter. I kept rewriting the same validators across different projects. TC Kimlik alone has a non-trivial algorithm that I was copy-pasting between apps. IBAN formatting was always a manual job. At some point it just made sense to package it properly. The Turkish Flutter ecosystem has a lot of talented developers but not many locale-specific utilities. Hopefully this saves someone a few hours. 📦 pub.dev/packages/turkish_validators 💻 GitHub If you find it useful, a like on pub.dev goes a long way. And if something's missing — open an issue, I'm actively maintaining it. tags: #flutter #dart #opensource #turkish #mobiledev

flutterdartopensourcewebdev
Swift and Xcode vs. Flutter and Dart: Choosing the Right Stack for Niche Faith-Tech Apps
06/06 17:20

Swift and Xcode vs. Flutter and Dart: Choosing the Right Stack for Niche Faith-Tech Apps

Mactrix XR

Swift and Xcode vs. Flutter and Dart: Choosing the Right Stack for Niche Faith-Tech Apps The global mobile application market is highly competitive. For indie hackers and software engineers, finding a profitable, underserved niche is the key to building a successful product. One of the fastest-growing and technically fascinating niches today is "faith-tech"—software designed to assist users in their daily spiritual routines and theological research. Specifically, building a modern catholic ai app represents a unique intersection of cutting-edge artificial intelligence, absolute user privacy, and ancient intellectual tradition. For developers, this space presents major engineering hurdles. How do you design an artificial intelligence that can accurately parse 2,000 years of dense theological dogma without hallucinating? How do you store highly sensitive user data securely on the device? And, from a pure software engineering perspective, which framework should you choose to compile and deploy your code? In this article, we will compare the technical trade-offs of using Swift and Xcode versus Flutter and Dart for building high-quality faith-tech apps. We will also dive into the backend architecture of a catholic ai tool, exploring Retrieval-Augmented Generation (RAG), prompt engineering, and privacy-first local storage. Many secular developers overlook faith-tech because they assume the target audience is non-technical or small. However, data from search engines and app stores reveals a highly active user base searching for tools to help them read historic texts, track habits, and ask complex philosophical questions. When you build in a niche like ai and theology, you face far less competition from giant venture-backed tech companies. This makes it significantly easier to rank organically on the Apple App Store and Google Play Store. A prime example of this market validation is the Catholic Theology: AI & Faith iOS app. This product combines a highly tailored catholic ai chatbot with offline utility tools like a Rosary counter, Daily Readings, and an encrypted Confession Tracker. By addressing specific, high-intent needs, developers can capture an incredibly loyal user base. As an indie hacker, your choice of development stack will dictate your iteration speed, UI performance, and device reach. Let us break down the technical trade-offs of native iOS development versus cross-platform development for this niche. If you decide to target iOS users first, building natively with Swift, SwiftUI, and Xcode offers several distinct advantages: Premium UI and Fluid Performance: SwiftUI allows you to build incredibly smooth user interfaces. The native animations, haptic feedback, and transitions match the iOS system aesthetic perfectly out of the box. Robust Privacy Frameworks: Apple provides industry-leading encryption and local storage tools, such as SwiftData, Keychain, and CoreData. This makes it straightforward to secure sensitive data on-device without running any backend servers. System Integration: Accessing native iOS features—such as lock-screen widgets for Daily Readings, Apple Watch companion apps, and Siri Shortcuts—is simple and requires zero third-party wrappers. However, native development locks you into the Apple ecosystem. To launch on Android later, you must rewrite your entire user interface and logic using Kotlin and Android Studio. Flutter, powered by Google's Dart language, is a dominant framework among indie hackers who want to build fast and ship everywhere: Single Codebase, Dual Launch: You can compile your app for both the Apple App Store and Google Play Store from a single Dart codebase. This cuts your development and maintenance overhead in half. Rich Package Ecosystem: The pub.dev registry has thousands of production-ready packages for local databases, state management, and API clients. Rapid Prototyping: Flutter’s hot reload feature lets you inject updated code into your running app instantly. This dramatically speeds up the visual design of tools like interactive Rosary counters or liturgical calendars. The main trade-off of Flutter is bundle size. A basic Flutter app starts with a larger base file size than a native Swift app. Additionally, you may need to write native platform bridges if you require highly specific OS integrations. Technical Feature Swift & Xcode (Native) Flutter & Dart (Cross-Platform) Code Reuse 0% (iOS only) ~90% (iOS & Android) UI Performance Native GPU rendering Impeller engine rendering (Highly fluid) State Management Observable, Combine, SwiftData Riverpod, BLoC, Provider Local Storage SwiftData, Keychain, CoreData Hive, Isar, Secure Storage, Sqflite App Bundle Size Minimal Medium (starts at ~15MB) Building an AI tool for theology is vastly different from building a generic customer service chatbot. In theology, absolute accuracy is a hard requirement. A single incorrect response regarding church history or dogma can ruin user trus

aifluttermobileswift
Mobile App Development Training in Chennai: Skills, Career Opportunities, and Industry Demand in 2026
06/06 13:52

Mobile App Development Training in Chennai: Skills, Career Opportunities, and Industry Demand in 2026

asmorix seo

Mobile applications have become an essential part of our daily lives. From online shopping and food delivery to banking and healthcare services, mobile apps are transforming the way businesses interact with customers. As organizations continue to invest in digital solutions, the demand for skilled mobile app developers continues to rise. This has made Mobile App Development Training in Chennai one of the most sought-after learning paths for students, graduates, and working professionals looking to enter the technology industry. *What is Mobile App Development? Mobile App Development is the process of designing, developing, testing, and deploying applications for mobile devices such as smartphones and tablets. Developers create applications for Android and iOS platforms using programming languages, frameworks, and development tools. *Popular technologies used in mobile development include: Android Studio These technologies help developers create high-performance applications that provide seamless user experiences. *Why is Mobile App Development in High Demand? Businesses across industries are focusing on mobile-first strategies to improve customer engagement and increase revenue. As a result, there is growing demand for developers who can build reliable and scalable mobile applications. *Industries hiring mobile developers include: E-commerce The increasing adoption of mobile technology has created numerous opportunities for skilled professionals. Essential Skills Required for Mobile App Development To become a successful mobile app developer, learners should focus on: Programming Fundamentals A strong understanding of programming concepts helps developers write efficient and maintainable code. User Interface Design Developers should understand how to create visually appealing and user-friendly mobile interfaces. API Integration Modern applications rely on APIs to communicate with servers and third-party services. Database Management Mobile applications often require secure data storage and management capabilities. Testing and Debugging Identifying and resolving issues is a critical part of the development process. Flutter vs React Native One of the most common questions among beginners is whether to learn Flutter or React Native. Flutter Flutter is Google's UI toolkit for building cross-platform applications. Benefits include: Fast development React Native is a popular framework developed by Meta. Benefits include: JavaScript-based development Both frameworks are widely used in the industry and offer excellent career opportunities. *Career Opportunities After Mobile App Development Training Professionals who complete Mobile App Development Training can pursue various roles such as: Mobile App Developer As businesses continue investing in digital transformation, the demand for these roles is expected to grow significantly. Mobile App Developer Salary in India Salary packages vary based on experience, location, and technical expertise. Average salary ranges: Freshers: ₹3.5 LPA – ₹6 LPA Developers with expertise in cross-platform technologies and modern frameworks often command higher salaries. *Why Choose Mobile App Development Training in Chennai? Chennai is one of India's leading technology hubs, offering numerous opportunities for software professionals. The city is home to startups, IT service companies, and multinational organizations actively seeking skilled developers. *Benefits include: Strong IT ecosystem Mobile App Development continues to be one of the most promising career paths in the technology sector. With increasing demand for Android, iOS, Flutter, and React Native developers, acquiring mobile development skills can open doors to exciting career opportunities. Whether you're a beginner or an experienced professional looking to upskill, investing in Mobile App Development Training can help you stay relevant in today's rapidly evolving digital landscape. What mobile development technology are you currently learning—Flutter, React Native, Android, or iOS?

mobileappdevelopmentflutterreactnativecareer

freeCodeCamp

15 条

教程、指南与实践文章

更新于 06/08 08:17
What “Production-Ready” Actually Means in Flutter
06/04 02:02

What “Production-Ready” Actually Means in Flutter

Gidudu Nicholas

I've been building Flutter apps for a few years now, and I still remember the first time I shipped something I was genuinely proud of. It had a clean UI, smooth animations, and every flow worked exact

FlutterDartMobile DevelopmentAndroid
From Flutter to Backend: How to Build and Ship Production REST APIs with Dart and Shelf
06/01 22:11

From Flutter to Backend: How to Build and Ship Production REST APIs with Dart and Shelf

Oluwaseyi Fatunmole

As a Flutter engineer, you already know Dart. You understand async/await, you work with models and repositories, you think in clean architecture, and you have shipped real applications. The gap betwee

Dartbackend developmentsFluttersoftware development
Advanced Error Handling in Dart: Records, Result Types, Monads, and Freezed Exceptions
05/28 05:43

Advanced Error Handling in Dart: Records, Result Types, Monads, and Freezed Exceptions

Oluwaseyi Fatunmole

Every Dart developer has written this at some point: try { final user = await repository.getUser(id); // do something with user } catch (e) { // what is e? who knows. print(e.toString()); } I

DartFluttererror handlingexception
How to Use Dart Cloud Functions and the Firebase Admin SDK: A Handbook for Developers
05/23 02:07

How to Use Dart Cloud Functions and the Firebase Admin SDK: A Handbook for Developers

Atuoha Anthony

There is a specific kind of friction that every Flutter developer who has tried to write a backend has felt. You spend your days writing expressive, null-safe, strongly typed Dart code on the frontend

FlutterDartcloud functionsFirebase
How to Build Production-Ready AI Features with Flutter [Full Handbook for Devs]
05/12 06:38

How to Build Production-Ready AI Features with Flutter [Full Handbook for Devs]

Atuoha Anthony

You've probably seen the demos. A Flutter app, a text field, and a few lines calling the Gemini API – and out comes something that feels like magic. The audience applauds. Your product manager is alre

AIFlutterDarthandbook
Learn Command Line Interface (CLI) Development with Dart: From Zero to a Fully Published Developer Tool
05/09 02:54

Learn Command Line Interface (CLI) Development with Dart: From Zero to a Fully Published Developer Tool

Oluwaseyi Fatunmole

Most developers spend a significant portion of their day in the terminal. They run flutter build, push with git, manage packages with dart pub, and orchestrate pipelines from the command line. Every o

FlutterDartclicommand line
How to Use Mixins in Flutter [Full Handbook]
04/14 05:53

How to Use Mixins in Flutter [Full Handbook]

Atuoha Anthony

There's a moment in every Flutter developer's journey where the inheritance model starts to crack. You have a StatefulWidget for a screen that plays animations. You write the animation logic carefully

FlutterDartflutter-aware
How to Use GraphQL in Flutter: A Handbook for Developers
04/06 22:12

How to Use GraphQL in Flutter: A Handbook for Developers

Atuoha Anthony

There's a moment that most Flutter developers experience at some point in their careers. You're building a screen that needs a user's name, their latest five posts, and the like count on each post. Se

FlutterDartGraphQLhandbook
How to Build AI-Powered Flutter Applications with Genkit Dart – Full Handbook for Devs
04/01 07:21

How to Build AI-Powered Flutter Applications with Genkit Dart – Full Handbook for Devs

Atuoha Anthony

There's a particular kind of frustration that every mobile developer has felt at some point. You're building a Flutter application, and you want to add an AI feature. Perhaps it's something that reads

genkit-dartgenkitAIFlutter
Efficient State Management in Flutter Using IndexedStack
03/31 07:29

Efficient State Management in Flutter Using IndexedStack

Atuoha Anthony

When you're building Flutter applications that have multiple tabs or screens, one of the most common challenges you'll face is maintaining state across navigation without breaking the user experience.

FlutterDartflutter-aware
How to Build a Complete Flutter CI/CD Pipeline with Codemagic: From PR Quality Gates to Automated Store Releases
03/24 08:37

How to Build a Complete Flutter CI/CD Pipeline with Codemagic: From PR Quality Gates to Automated Store Releases

Oluwaseyi Fatunmole

If you've spent any time shipping Flutter apps manually, you already know the drill. Someone on the team finishes a feature, builds the APK locally, signs it (hopefully with the right keystore), uploa

code magicci-cdMobile Developmentmobile app
How to Build a Production-Ready Flutter CI/CD Pipeline with GitHub Actions: Quality Gates, Environments, and Store Deployment
03/19 06:58

How to Build a Production-Ready Flutter CI/CD Pipeline with GitHub Actions: Quality Gates, Environments, and Store Deployment

Oluwaseyi Fatunmole

Mobile application development has evolved over the years. The processes, structure, and syntax we use has changed, as well as the quality and flexibility of the apps we build. One of the major improv

ci-cdFlutterMobile Developmentgithub-actions
Learn How AI Agents Are Changing Software Development by Building a Flutter App Using Antigravity and Stitch
03/12 05:55

Learn How AI Agents Are Changing Software Development by Building a Flutter App Using Antigravity and Stitch

Atuoha Anthony

Software development has always evolved alongside the tools we build. There was a time when developers wrote everything in assembly language. Then higher-level languages arrived and made it possible t

FlutterDartAIGoogle Antigravity
How to Use Monorepos in Flutter
02/05 04:07

How to Use Monorepos in Flutter

Atuoha Anthony

As Flutter applications grow beyond a single mobile app, teams quickly encounter a new class of problems. Shared business logic begins to be copied across projects. UI components drift out of sync. Fixes in one app don’t propagate cleanly to others. ...

FlutterDartflutter-aware
How to Add Multi-Language Support in Flutter: Manual and AI-Automated Translations for Flutter Apps
01/31 09:27

How to Add Multi-Language Support in Flutter: Manual and AI-Automated Translations for Flutter Apps

Atuoha Anthony

As Flutter applications scale beyond a single market, language support becomes a critical requirement. A well-designed app should feel natural to users regardless of their locale, automatically adapting to their language preferences while still givin...

FlutterDartAccessibility

Hacker News

20 条

技术社区讨论与项目链接

更新于 06/08 08:17
Flutter: macOS Malvertising Campaign Spreads New FlutterShell Backdoor
06/05 06:55

Flutter: macOS Malvertising Campaign Spreads New FlutterShell Backdoor

brazukadev

Article URL: https://unit42.paloaltonetworks.com/flutterbridge-new-fluttershell-backdoor/ Comments URL: https://news.ycombinator.com/item?id=48405793 Points: 3 # Comments: 0

Shorebird in Anger: A Production Flutter Code Push Integration
06/02 22:57

Shorebird in Anger: A Production Flutter Code Push Integration

mooreds

Article URL: https://about.kikoff.com/build/shorebird-in-anger-a-production-flutter-code-push-integration Comments URL: https://news.ycombinator.com/item?id=48371130 Points: 2 # Comments: 0

I Built the Same App with Five GUI Frameworks: Tauri Slint Egui Dioxus Flutter
06/01 08:59

I Built the Same App with Five GUI Frameworks: Tauri Slint Egui Dioxus Flutter

zero-ground-445

Article URL: https://medium.com/@yalovoy/i-built-the-same-app-with-five-gui-frameworks-tauri-slint-egui-dioxus-and-flutter-for-linux-31bd6f59ff6a Comments URL: https://news.ycombinator.com/item?id=48351490 Points: 4 # Comments: 1

Canonical takes over Flutter desktop maintenance and roadmap
05/31 22:27

Canonical takes over Flutter desktop maintenance and roadmap

redbell

Article URL: https://www.omgubuntu.co.uk/2026/05/flutter-desktop-canonical-maintained Comments URL: https://news.ycombinator.com/item?id=48345927 Points: 4 # Comments: 0

Canonical takes over Flutter desktop maintenance
05/30 22:45

Canonical takes over Flutter desktop maintenance

maxloh

Article URL: https://www.omgubuntu.co.uk/2026/05/flutter-desktop-canonical-maintained Comments URL: https://news.ycombinator.com/item?id=48336823 Points: 5 # Comments: 1

Canonical takes over Flutter desktop maintenance
05/30 03:15

Canonical takes over Flutter desktop maintenance

chrisb

Article URL: https://www.omgubuntu.co.uk/2026/05/flutter-desktop-canonical-maintained Comments URL: https://news.ycombinator.com/item?id=48327937 Points: 7 # Comments: 0

What's New in Flutter 3.44
05/22 16:13

What's New in Flutter 3.44

divan

Article URL: https://blog.flutter.dev/whats-new-in-flutter-3-44-b0cc1ad3c527 Comments URL: https://news.ycombinator.com/item?id=48233274 Points: 2 # Comments: 0

Convert between 30 color formats in one tool (HEX, RGB, Tailwind, Flutter, etc)
05/22 09:06

Convert between 30 color formats in one tool (HEX, RGB, Tailwind, Flutter, etc)

hkdb

Article URL: https://colorcx.com/ Comments URL: https://news.ycombinator.com/item?id=48230724 Points: 2 # Comments: 0

A Firebase Mistake Led to a €3,167 AI Bill Overnight in My Flutter App
05/13 18:56

A Firebase Mistake Led to a €3,167 AI Bill Overnight in My Flutter App

serial_dev

Article URL: https://ulusoyca.medium.com/how-a-two-year-old-firebase-mistake-led-to-a-3-167-ai-bill-overnight-89adfab1dad3 Comments URL: https://news.ycombinator.com/item?id=48120294 Points: 3 # Comments: 1

Show HN: Mathfinity – Mental arithmetic drills against the clock (Flutter)
05/05 18:50

Show HN: Mathfinity – Mental arithmetic drills against the clock (Flutter)

heliskyr2

Article URL: https://github.com/p32929/mathfinity Comments URL: https://news.ycombinator.com/item?id=48020681 Points: 1 # Comments: 0

04/15 17:21

Riches List: Flutter App for Smart Expense Management

freakypoison

Riches List — a modern Flutter-based expense management app designed to simplify how users track spending, manage transactions, shop smarter, and make seamless digital payments. I’m currently looking for support, contributions, and collaboration to help improve the project further. If you’re interested in mobile development, Flutter, UI improvements, feature ideas, or open-source collaboration, your contribution would be highly appreciated. https://github.com/shubham-gaur/riches-list Comments URL: https://news.ycombinator.com/item?id=47776650 Points: 2 # Comments: 0

Popular Flutter GetX repo disappeared briefly
04/15 13:28

Popular Flutter GetX repo disappeared briefly

nativeforks

Article URL: https://github.com/jonataslaw/getx Comments URL: https://news.ycombinator.com/item?id=47775020 Points: 1 # Comments: 0

04/04 04:31

Show HN: Lustre – MCP server giving AI tools premium Flutter components

deltaops

Article URL: https://www.npmjs.com/package/lustre-mcp Comments URL: https://news.ycombinator.com/item?id=47631865 Points: 1 # Comments: 0

What's New in Flutter 3.41
03/31 07:22

What's New in Flutter 3.41

doctaj

Article URL: https://blog.flutter.dev/whats-new-in-flutter-3-41-302ec140e632 Comments URL: https://news.ycombinator.com/item?id=47580930 Points: 2 # Comments: 0

03/16 05:10

Show HN: Flutterby, an App for Flutter Developers

DavidCanHelp

Article URL: https://flutterby.app/ Comments URL: https://news.ycombinator.com/item?id=47391966 Points: 6 # Comments: 1

Google Announces Genkit (Gen AI Library) for Dart and Flutter
03/11 21:06

Google Announces Genkit (Gen AI Library) for Dart and Flutter

pavelgj

Article URL: https://blog.dart.dev/announcing-genkit-dart-build-full-stack-ai-apps-with-dart-and-flutter-2a5c90a27aab Comments URL: https://news.ycombinator.com/item?id=47335067 Points: 3 # Comments: 0

02/28 15:39

Show HN: Can we have Flutter-like portability without the bloated web binaries?

io_eric

I’ve been spending the last few months building Coi, a type-safe language that compiles to WebAssembly. The initial goal was just a fast, reactive web language, but as I refine the core, I’ve started mapping out how to take this multi-platform, mobile, desktop, and server, without falling into the traps that other frameworks have. The plan is to use C++ as the intermediate layer. For desktop and mobile, I want to use Skia combined with a layout library to translate HTML/CSS sizing and transformations into something Skia can draw. This ensures the UI stays pixel-perfect across platforms. However, the "Flutter approach" to the web has always bothered me. Shipping a 2MB+ Skia binary just to render a basic landing page feels redundant when the browser already has a world-class rendering engine. It results in massive bundles and a canvas-only UI that breaks basic browser expectations like SEO, text selection, and accessibility. With Coi, I want to split the strategy: on the web, it stays lean by using the browser’s native HTML/CSS and JS glue. On native platforms, it uses the C++/Skia stack. You get the same codebase and the same visual output, but the web build doesn't suffer from "canvas bloat". Right now, I’m still focused on the web target and refining the core language specs, but the server target is next on the roadmap. I'm curious if this "hybrid rendering" approach, native elements for web, Skia for desktop/mobile, is something others have found success with, or if I'm underestimating the difficulty of keeping the layout engines perfectly synced. I'd love some feedback on the language design or the architectural plan. https://github.com/coi Comments URL: https://news.ycombinator.com/item?id=47191782 Points: 1 # Comments: 4

Show HN: I rebuilt my 13-year-old budgeting app from scratch in Flutter
02/23 16:04

Show HN: I rebuilt my 13-year-old budgeting app from scratch in Flutter

sfluecki-dev

I built BUDGT in 2013 as a broke student who needed one answer: "how much can I spend today without going broke this month?" It divides your monthly budget into a daily allowance — one number, updated in real time as you log expenses. 13 years and thousands of users later, I rebuilt the whole thing from scratch. The original Objective-C app couldn't support what users were asking for (analytics, category budgets), so I moved to Flutter and rewrote every screen. What's different: - Full redesign with a modern UI - Analytics: spending pace, month-over-month, day-of-week patterns, top expenses - Category targets: set limits per category, not just an overall budget - Category drill-down: see exactly where money goes within each category What hasn't changed: - 100% offline. No account, no cloud, no bank connection, no tracking. - All data stays on the device. I literally cannot see your data. - Same daily budget concept — one number, color-coded feedback. The hardest part was migrating existing users' Core Data (SQLite) to the new Drift database without losing any records. Existing users get the update automatically and see a migration flow that moves their entire history. Happy to discuss the technical side (Flutter architecture, Core Data migration, App Store continuity with a full rewrite) or the product side. iOS only: https://apps.apple.com/app/id580812126 Comments URL: https://news.ycombinator.com/item?id=47119396 Points: 2 # Comments: 0

Show HN: A stream-based Flutter audio module with CarPlay/Android Auto
02/23 13:53

Show HN: A stream-based Flutter audio module with CarPlay/Android Auto

paweljanda

Hi! We open-sourced mt_audio, a stream-based audio module for Flutter that wraps just_audio + audio_service behind a single facade. We built this because in multiple production apps (podcast/radio/audiobook-like flows) we kept re-implementing the same glue: background playback, notifications, queue handling, stream/state wiring, and integration edge cases. The goal is a small dependency that gives a consistent API and reduces app-level complexity (no required external state management). Key features: background playback + system notifications queue management (playlist-first workflows) Android Auto & Apple CarPlay support behind the same facade example app + ready UI widgets (Now Playing / controls) Feedback welcome — especially on API shape, missing edge cases, and docs/examples. Comments URL: https://news.ycombinator.com/item?id=47118611 Points: 2 # Comments: 1

Show HN: Create an onboarding flow on Flutter in 5 min
02/19 17:09

Show HN: Create an onboarding flow on Flutter in 5 min

jordanbonnet

Hey Flutter devs If you've shipped apps before, you know how important it is to have an efficient and polished onboarding flow. It's the first thing users see and often the reason they leave. You've probably first focused on the core of your app, what makes it different. And now, you want to push it to the store, but you know you have to build an onboarding flow... and it's a little painful. Onboarding flows are deceptive. They are super easy to build technically, but very difficult to perfect in terms of conversions. Should I ask questions or show features? Should I add more steps? Less steps? Should I prompt to give a rating? Should I force users to sign-in? That's why iteration is key. And with coding agents, it's never been easier to test different things. But your agent only builds what you ask for. And when it comes to onboarding, most devs don't know which details actually matter. The right spacing, the subtle animations, the micro-interactions that make users stay. You'll burn through tokens and still end up with something that feels off. The new version of fluo.dev lets you build beautiful onboarding flows for Flutter right from your favorite coding agent. It gives structure, like rails to follow. You don't rebuild standard steps from scratch. You don't waste tokens on boilerplate. You get built-in templates with all the details baked in. No drag-and-drop. No config files. Just prompt and ship. No email. No account. No credit card. 100% free. 100% open source. And if you need beautiful authentication flows (email + otp, mobile + otp, google, apple), it's included and also 100% free. Would love to know your thoughts :) Comments URL: https://news.ycombinator.com/item?id=47071660 Points: 2 # Comments: 0

Medium

10 条

Flutter 相关文章精选

更新于 06/08 08:17
Firebase Authentication in Flutter: The Identity Layer You Don’t Have to Build
06/08 04:21

Firebase Authentication in Flutter: The Identity Layer You Don’t Have to Build

Himanshu Sharma

Firebase Auth covers email/password, Google, Apple, phone OTP, anonymous, and custom-token sign-in with one SDK and one user model. Continue reading on Medium »

software-developmentfirebasesoftware-engineeringdart
Firebase + Flutter: Why Are You Still Configuring This Manually in 2026?
06/08 04:13

Firebase + Flutter: Why Are You Still Configuring This Manually in 2026?

Alfonsina Beltre

Continue reading on Medium »

technologyfirebasefluttersoftware-engineering
I Built a Social App With Zero Backend Code. Here’s the Exact Stack.
06/08 04:05

I Built a Social App With Zero Backend Code. Here’s the Exact Stack.

Himanshu Kala

Flutter + Supabase + $0/month infrastructure and the four bugs that nearly broke me. Continue reading on Medium »

android-app-developmentflutterandroid-developmentsupabase
Flutter vs React Native: Which Framework Should You Choose for Your Next Mobile App?
06/08 03:33

Flutter vs React Native: Which Framework Should You Choose for Your Next Mobile App?

Appivanta

Flutter vs React Native: Which Framework Should You Choose for Your Next Mobile App? Continue reading on Medium »

fluttermobile-app-developmentreactnativeappdevelopment
Understanding const in Dart & Flutter (From a Confused Flutter Newbie)
06/08 02:39

Understanding const in Dart & Flutter (From a Confused Flutter Newbie)

Mochamad Syahrial Alzaidan

When I first started learning Flutter, one thing kept showing up everywhere: Continue reading on Medium »

mobile-app-developmentflutter
Using const in Flutter (deeper than you think)
06/08 02:09

Using const in Flutter (deeper than you think)

Daffa Muhammad Faizan

Coming from Go and Java, you might think of const simply as a way to declare a value that never changes. While that is true in Dart, using… Continue reading on Medium »

mobile-developmentflutter
What “const” Do in Dart and Flutter
06/08 01:23

What “const” Do in Dart and Flutter

Rayhan Fadhlan

So when learning dart and flutter, i saw something unique, the language has both const and final. Some language has only either of it e.g… Continue reading on Medium »

mobile-app-developmentflutter
What is const in Dart and Flutter and why should you use it?
06/08 00:50

What is const in Dart and Flutter and why should you use it?

Ghifaripg

If you have written Flutter code for more than five minutes, you have probably seen const everywhere. But what does it actually do? And… Continue reading on Medium »

flutter
Const: One Word Huge Difference
06/08 00:34

Const: One Word Huge Difference

Muhammad Raihan Akbar

In Dart and Flutter, the const keyword defines compile-time constants, which are deeply immutable values that cannot change during the… Continue reading on Medium »

flutterdart
Why Flutter Keeps Asking You to Add const (And Why You Should Listen)
06/07 23:58

Why Flutter Keeps Asking You to Add const (And Why You Should Listen)

victorhalim

You’re writing a Flutter widget. Your IDE underlines something and suggests: “Add const modifier.” Continue reading on Medium »

dartflutteroptimization

Reddit

4 条

社区日榜讨论与资源

更新于 06/08 08:17
06/07 14:12

What are you using for reliable background/terminated push notifications besides FCM?

/u/Recent-Pear-6341

Hey everyone, I’m looking into alternative push notification architectures for a Flutter app, specifically targeting reliable delivery when the app is in the terminated (killed) state. Recently, I’ve been testing standard local notification packages (flutter_local_notifications), but as expected, background triggers get throttled or completely killed by OS-level battery management once the app is cleared from the recent apps list. I know Firebase Cloud Messaging (FCM) is the industry standard for waking up an app from a terminated state using high-priority data messages, but I recently tested a Flutter app that delivered spot-on notifications without using the Firebase stack. For those running production Flutter apps without Firebase, what are you using to handle this? Are you self-hosting something like Matrix, Gotify, or using WebSockets with a persistent background service? Are you using alternative BaaS providers like Supabase Edge Functions + APNS/FCM directly, or third-party services like OneSignal / Pushy? How are you bypassing aggressive OEM battery savers (especially on Android) to keep your background sync/triggers alive without FCM? Would love to hear about your production setups, architecture choices, and any pitfalls you encountered. Thanks! submitted by /u/Recent-Pear-6341 [link] [comments]

06/07 13:32

Flutter plugin for apple spatial capture

/u/mechaadi

Spent the last few weeks building this, and it’s finally out. I just published apple_spatial_capture, a Flutter plugin that brings several of Apple’s spatial capture APIs to Flutter. It includes: - Object Capture - Photogrammetry from existing images - LiDAR mesh scanning - RoomPlan room scanning - Native previews for USDZ, OBJ, GLB & GLTF files - Progress events for photogrammetry jobs The idea was simple: if you’re building a Flutter app that needs 3D scanning or spatial features, you shouldn’t have to write a native bridge for everything. Hopefully this saves someone else a lot of time. Always open to feedback, feature requests, or contributions. https://pub.dev/packages/apple\_spatial\_capture submitted by /u/mechaadi [link] [comments]

06/07 18:25

Pure dart gremlin driver

/u/Only-Ad1737

submitted by /u/Only-Ad1737 [link] [comments]

06/07 22:42

I got tired of rebuilding AI integrations, so I built genesis_ai_sdk — a Flutter SDK that works with any AI provider

/u/PruneTop3189

Every Flutter project I worked on that needed AI followed the same painful pattern: Pick a provider (Gemini? OpenAI? Claude?) Learn their API Build tool calling from scratch Build memory management Add safety checks (prompt injection, PII redaction) Lock yourself into that provider Then if you wanted to switch providers (for cost, latency, or privacy), you'd start over. So I built genesis_ai_sdk to solve this. The idea: one unified API that works with any AI provider. You can start with Gemini while developing, then switch to Ollama for privacy-critical features, then fall back to Claude if something breaks — all without changing your agent code. What it handles: - Tool calling (agent reasons what to do, calls tools, observes results, repeats) - Persistent memory (conversation history that survives app restarts) - Safety (blocks prompt injection, redacts PII, rate limiting) - Works everywhere (Android, iOS, macOS, Windows, Linux, Web) - Cloud or on-device (your choice) 7 providers supported: - Cloud: Gemini, OpenAI, Claude, HuggingFace - Local: Ollama, Gemma, GGUF The multi-provider thing is actually huge if you care about privacy or cost. You can run locally when it's sensitive, use cheap cloud when it doesn't matter. Got it published on pub.dev with a perfect 160/160 score (genuinely shocked). Open source, MIT licensed. Would love feedback, or if you've had similar frustrations with AI integration in Flutter, curious to hear about it. submitted by /u/PruneTop3189 [link] [comments]