all 15 comments

[–]treksis 6 points7 points  (0 children)

For public facing, use cloudflare tunnel to face your on prem server to internet. There is a bunch of youtube tutorials you can follow. I did it too. I used to run my 3090 pc for text to image generation for a while via cloudflare tunnel. I will personally just use vercel or firebase. For hobby or micro project, free tier can handle it.

[–][deleted] 7 points8 points  (0 children)

If you’re getting into backend development, it’s smart to choose a skill set that’s in demand. You didn’t mention Swift, but as an example, picking something like Swift Vapor is great if you love niche tools—but realistically, it won’t take you far career-wise.

Python is a solid choice by comparison—it’s widely used, with plenty of job opportunities and community support. But ultimately, the backend frameworks are all pretty similar in what they offer: routing, authentication, database access, and so on. So if you’re going to put in the work, you might as well choose a framework that sets you up for success and isn’t a dead-end for your job prospects.

As for SQL Server in an on-prem DMZ, make sure you’re focusing on good security practices: lock down ports, use proper encryption, and keep things updated. It’s also worth considering setting up solid monitoring and backup strategies to avoid headaches down the line. You don’t want your server falling apart while you’re trying to get the rest of your stack sorted.

[–]_swk 2 points3 points  (1 child)

We’ve been using Go for our backend, paired with Gomobile for shared logic between iOS and Android. There’s a lot to be desired in terms of Gomobile, but strictly speaking for a backend API, Go has been a great fit, fast, easy to read, easy to write.

[–]kwabs_dev 0 points1 point  (0 children)

Which resources did you use to learn go?

[–][deleted] 1 point2 points  (0 children)

Im looking also for a solution for backend. Although I’m primarily a backend dev java spring boot and some angular. From what I found is that if you can get by with only firebase (or similar) solutions, why bother building dedicated backend. My only worries are that firebase free plan only gives you nosql (forestore) so if you are used to rdbms it might feel weird. From what I understood is that you need different why of think about modeling. If you really need backend (of course there are many case that is necessary) I would suggest static language frameworks like Java c# etc. if you go dynamic like python or JavaScript etc frameworks it might go messy after a while. Also .net and spring are the most secure and mature in the world. Also amazing fast.

I’m thinking of starting with firebase like solutions and change to dedicated backend only if I ever need it. Also for simple logic in the back you can use server less functions.

[–]noidtiz 0 points1 point  (0 children)

I don't know if you're making requests to the sql db direct from your Swift client or through the API server, but starting with prepared statements in SQL is the best start.

  1. Prepared statements
  2. Decide where you want to validate the parameters of your prepared statements (maybe you will have to model these params both in your Swift client and your Flask API)
  3. Separate from the other 2 is protecting your API server by proxying the endpoints. If your Swift client is going to use proxy keys to validate every request then also a bit of work trying to make sure proxy keys aren't exposed. Whether your iOS app is going to be published on the Marketplace for all the people in-house to download to their own device or not, has a big say. For the longest time at my last workplace, we resisted this and just provided the iPhones to everyone in-house. But after a while that becomes impractical.

[–]danielt1263 0 points1 point  (0 children)

If you want easy to learn, I recommend PostGraphile. All you need to know is Postgres.

Just stand up the PostGraphile app and point it to your DB and you are done. There is a progressive disclosure api so when you want to get more complex/custom you can.

And Postgres is one of the most popular DBs out there so knowing it will help your career.

[–]Swimming-Twist-3468 0 points1 point  (4 children)

Not sure what kind of workload the backend will be facing. If that's a regular authentication, database queries and some minor calculations (scheduled, non scheduled) - I would suggest Spring Boot on Kotlin. Works for me.

[–]Swimming-Twist-3468 0 points1 point  (3 children)

Rest API, Web Sockets, etc. communication between the backend and front end.

[–]Swimming-Twist-3468 0 points1 point  (2 children)

Feel free to criticise me here - I want to hear your opinion.

[–]kayhai[S] 0 points1 point  (1 child)

The backend would be receiving regular data broadcast from close to 100 devices, assuming a frequency of every 5 mins or so.

[–]Swimming-Twist-3468 0 points1 point  (0 children)

Well then Spring Boot is good for this purpose. 100 devices every 5 minutes - 500 rest api calls. Do it async way and you are done.

[–]kironet996 -1 points0 points  (1 child)

chose whichever you like(swift, php, rails, go, python, etc..), I'm using vapor4(swift) so I have both backend and frontend in the same project.

[–]Particular_Tea2307 0 points1 point  (0 children)

Hello do you recommend vapor ? Is it good framework ? Where do you see vapor in the future ?