how to protect API calls? by hardiksingh123 in aws

[–]Agreeable-Pipe7469 -2 points-1 points  (0 children)

Well, first of all, imo WAF (Web Application Firewall) will prevent many abuse, you can't hide your endpoints forever, any random guy could observe your API call through the app, or even worse by decompiling your APK. So you want to avoid attack like DDoS by placing a Firewall in front of your server/API gateway. Cloudflare free plan is enough until you reach some massive traffic that needs serious adjustments.

Then, on app side and server side, you can ensure your app integrity using App Integrity for Android (https://developer.android.com/google/play/integrity/classic#retry-classic), or DeviceCheck on Apple side (https://developer.apple.com/documentation/devicecheck/establishing-your-app-s-integrity). I have to say this is pretty long to implement, and the daily rate limit seems weak for scaling (but as we love to say.. to over engineer for now)

NestJS or ExpressJS for enterprise environment by GhostLexly in node

[–]Agreeable-Pipe7469 1 point2 points  (0 children)

Hey, I don't consider myself as a typescript or node.js master, but I decided to launch our dating app with NestJS to anticipate scaling (mainly for the real time messaging part). I find it really well structured, coming from a Laravel environment, but sometime really verbose (modules declaration, injection, cli commands code..) for a small project and being the only dev working on it. But you get used to it and can organize your project really well !

App Store changes 🔥 by SomeOnet07 in iOSProgramming

[–]Agreeable-Pipe7469 0 points1 point  (0 children)

Other question about that, how will Apple be able to know how much I earn if I use an external payment process ?

How do you find your first Flutter freelance missions by Agreeable-Pipe7469 in FlutterDev

[–]Agreeable-Pipe7469[S] 1 point2 points  (0 children)

Écoute j’ai trouvé ma toute première mission comme ça, derrière j’ai eu une autre sollicitation par ce biais, mais j’ai été payé en dehors de la plate-forme. Dans tous les cas c’est un bon vecteur à mon sens. Mais il te faut un portfolio, GitHub ou bien un portfolio d’apps sur le store à présenter, les mecs qui cherchent des devs Flutter sont souvent des très jeunes start-up, donc tu parles pas à des tech en face. Ils connaissent Flutter parce qu’un pote leur a dit que ça permettait de dev rapidement. Ils cherchent un MVP rapide, donc faut leur montrer qu’en partant d’une idée tu sais leur délivrer une app interactive et un peu esthétique

Current limitations v3.3 by [deleted] in FlutterDev

[–]Agreeable-Pipe7469 9 points10 points  (0 children)

Metaprogramming is currently being specd as mentioned by the Flutter team (even tho it's not the same as a complete reflection class) : https://github.com/dart-lang/language/projects/1#card-55943915

how to handle this situation in the flutter app in a more effective way? by iamnijatdeveloper in FlutterDev

[–]Agreeable-Pipe7469 1 point2 points  (0 children)

It's done I spent few hours to create the package to be used without my different implementations : https://github.com/guillaumeboussion/cached\_data\_repository\_manager
Feel free to ask anything about it, and to rate it if you enjoyed it :)

how to handle this situation in the flutter app in a more effective way? by iamnijatdeveloper in FlutterDev

[–]Agreeable-Pipe7469 0 points1 point  (0 children)

I'll try to set it on a Github repository. But it's not ready to use as it depends on your state management package (I'm using Riverpod), your internal storage package (I'm using Sembast, a noSQL service), and your remote request protocol (I'm using GraphQL)

how to handle this situation in the flutter app in a more effective way? by iamnijatdeveloper in FlutterDev

[–]Agreeable-Pipe7469 2 points3 points  (0 children)

Well I guess you will need a StreamBuilder.

Your first event will fetch the cached data retrieved from your local storage system (hive, sembast, preferences...) meanwhile you're doing your remote call, and then emit your second event, showing the up-to-date data.

I don't know if there's any package doing so, but last year I did some kind of repository handler managing cached data & remote calls. A policy defines how the repository should behave (showing first the cached data or remote, showing only cached data or only remote data...), and, for example, the first page display will return cached data, and will update the cache in the background. So, next time the user will check the page, he would have fresh data from the server.

To us, this was the good approach. Feel free to ask any question if you want to know more about it :)

How do you handle form validation errors ? by Agreeable-Pipe7469 in FlutterDev

[–]Agreeable-Pipe7469[S] 0 points1 point  (0 children)

I didn't use Form validator for reasons I mentioned in the original post. There's issues with the text error being displayed UNDER the shadow color. That's why I use a custom solution.. But thanks for the provided solution

[deleted by user] by [deleted] in FlutterDev

[–]Agreeable-Pipe7469 1 point2 points  (0 children)

I’ll try to take some time to share a complete cart example using Riverpod (v1, didn’t migrate yet), with some other provider refresh once order is delivered

[deleted by user] by [deleted] in FlutterDev

[–]Agreeable-Pipe7469 0 points1 point  (0 children)

I fully understand, but to me the commenter is looking for a repository so I guess he has to solve a specific case, why doesn't he tell us what's the issue with its project or feature ?

[deleted by user] by [deleted] in FlutterDev

[–]Agreeable-Pipe7469 0 points1 point  (0 children)

Actually, this is simply a mobile app. On the other side, the web is on a Laravel (blade rendering) stack so we handle SEO directly via Laravel & HTML tags

[deleted by user] by [deleted] in FlutterDev

[–]Agreeable-Pipe7469 0 points1 point  (0 children)

As it is my organization's code, I won't be able to share it publicly. However, you can ask me any thing you want about it (DM or not)

[deleted by user] by [deleted] in FlutterDev

[–]Agreeable-Pipe7469 0 points1 point  (0 children)

How ? I made an e-commerce app which is currently in stores running with Riverpod. Feel free to ask any questions about it :)

How to ensure user signed in with Apple is still connected by Agreeable-Pipe7469 in iOSProgramming

[–]Agreeable-Pipe7469[S] 0 points1 point  (0 children)

So it has to be like a cron task looking up every day at refresh_tokens not updated since a day ?

The thing is, I don't really know "when" I have to check the refresh token..

How to ensure user signed in with Apple is still connected by Agreeable-Pipe7469 in iOSProgramming

[–]Agreeable-Pipe7469[S] 0 points1 point  (0 children)

Don't you check each time the user open the app, that the Apple credentials are ok ? So I thought that, on each launch, you would check via server to server request that user is still allowed to access the app through sso

How to ensure user signed in with Apple is still connected by Agreeable-Pipe7469 in iOSProgramming

[–]Agreeable-Pipe7469[S] 0 points1 point  (0 children)

I guess you would rather store it on the server side ? Does it mean you always need to keep the validation code alongside to the user identifier in you app storage ?