I'm trying to add some content filtering into my iOS app. Namely, I'd like if it could block certain URLs. I've poked around with some VPN stuff, but I'm getting lost. My basic understanding is that I need to create a Personal VPN using NetworkExtension and then I'll still need a server to point to where the content filtering will actually happen.
Other than that I've seen some mention of using a custom VPN to do the filtering on the client side (on the iPhone / iPad). I've ruled out using a content filter, as that only works for monitored devices.
What I'm trying to get more info on is:
How do I create a personal or custom VPN?
How do I spin up a server to filter this content? Could I use aws lambda?
I've read through all of these:
https://kean.blog/post/vpn-configuration-manager
https://stackoverflow.com/a/58992921/3320342
https://developer.apple.com/forums/thread/96777
https://developer.apple.com/forums/thread/74464?answerId=218089022#218089022
But I'm still stumped. Any pointing in the right direction would be greatly appreciated.
Related
I assume it has something to do with this:
For me Google one Tap stopped working on all my sites that previously worked. I added API HTTP refer to restriction in console.developer.com, but I still get a warning message "The client origin is not permitted to use this API." any thoughts? If you go to the page https://www.wego.com/ you can see that Google one tap still works...
https://news.ycombinator.com/item?id=17044518#17045809
but Google YOLO stop working for everyone. I use it like many people for login and it just stop work.
My domain are obviously added on console.developers.google.com
Any ETA for fix this? Some information would be great for people who rely on it.
Google YOLO is not disabled. It is open to a small list of Google Partners.
The reason you were able to access it earlier was because it was open for a short period of time but the whitelist is now readded/enabled.
Reference:
https://twitter.com/sirdarckcat/status/994867137704587264
Google YOLO was put on whitelist after a client-side exploit became clear to google.
People could cover the login button of the prompt with something like a cookie consent (which we all know people automatically accept).
Therefor people could easily steal their gmail or other details due to this google decided to put it on whitelist and review the sites that are using this technology in order to ensure that they are using it as they should.
Google retroactively labeled One-Tap as a "closed beta".
https://developers.google.com/identity/one-tap/web
The beta test program for this API is currently closed. We are improving the API's cross-browser functionality and will provide updates here in the coming months.
The link for the entire project is currently 404, but the beta statement is visible on the wayback machine.
I am wondering about what the best way to keep users in sync with each other in a social network is. The concerned stack is an iOS app with a NodeJS backend. Let me give you an example:
Say X and Y are friends on a social network. Y's posts appear in X's feed, and as such, Y is cached somewhere on the X's phone. This morning, Y decided to change profile pictures however. Everything is well, the new picture is uploaded to the server, but how do we go about letting X know about the change of profile picture?
My possible solution: Create a route /<UID>/updates that contains a stack of "cookies" which lets the user know what and who changed since the last time they made a GET request to the route.
This seems elegant enough, but what worries me is what happens on the client side (am I supposed to make a GET request every 2 minutes during my app's uptime?). Are there any other solutions?
One solution is indeed to poll the server, but that's not very elegant. A better way is to make use of websockets:
WebSockets is an advanced technology that makes it possible to open an interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.
They are a 2-way connection between client and server, allowing the server to notify the client of any changes. This is the underlying technology used in the Meteor framework for example.
Take a look at this blogpost for an example of how to use websockets between an iOS client and a NodeJS backend. They make use of the open source SocketRocket iOS library.
So I am working on a project where my iOS application acts as a server and receives connections from clients that send location data. My application reads this data from a socket and either updates the location of the clients on a MKMapView or creates a new one if it is a new connection.
I have my code completely unit tested so I feel some what confident about it. However, I am trying to write an acceptance test that will start my app and have a client connect to the socket, send some data and see if my app adds an MKAnnotation to the map view. Now I have had a little bit of experience with UI Automation but my issue is how can I write this networking code.
Here is what I need the test to do:
1.) Go to view controller where this networking code is happening (Easy enough with UI Automation)
2.) Once the view controller is loaded the server will start on port 2500 (Easy enough)
3.) Have a client connect to the server and send a message (This is what I don't know how to accomplish)
4.) Assert that the MKMapView has an annotation with the information I sent (Easy with UI Automation)
I know there is nothing native to javascript that will allow me to work directly with sockets, but could I use a library that uses web sockets? Other than that option I have not been able to find any resources online to solve testing a problem like this. I am open to any suggestions since I really don't know how to tackle this problem. I am sure there must be some way to test this. Thank you in advance and I am eagerly awaiting any suggetions!!
I am making an iOS app that will display images, videos, and textual information that I provide.
this information needs to be updated and refreshed as the user requests, time interval, and when the user opens the app. Not hardcoded and changed on app store updates.
How would i go about doing this?
Do I need to create an online web server that I pull the information from?
If so how would I go about creating a server?
Could anyone point me in the correct direction?
yeah you have to use web Services. that means you have to create one server & from that server you can send images,text as you required without making hardcoded. you just have to pull the value from web service.
images,text all this can be send through xml & you have to accept that xml & have to parse it
You can install an Apache server on your MacOS, read read this:
http://osxdaily.com/2012/09/02/start-apache-web-server-mac-os-x/
I ended up using parse which has excellent mobile support. And is free until you receive a certain amount of traction. I recommend it!
I'm just starting to learn about iOS development, and I figure the best way to get started is to build a simple (but non-trivial) app. My idea is this: have a web interface where a user can create a survey, and then access those surveys through the app and send responses back to the server. The web design part probably won't be terribly difficult -- I've done similar things with Django before. The part that will require learning/effort is the iPhone app.
I've got enough Objective-C that the data structures (model) won't be hard to code, and the UI (view, controller) part shouldn't be bad either. I predict that the interface between web and phone will be difficult, though. In particular, how will I be able to access the database on the server from the phone? I'd like to have a single DB that both web and phone apps use.
What I'd really like to have is a general, broad-strokes description of what I'll need to do to get this all up and running. Am I right in believing that the networking will be the hardest part? Are there any other possible snags? Any advice, or pointers to good resources on the subject, would be greatly appreciated.
Networking will probably not be the hardest part here, you're just guessing because that aspect is unfamiliar to you. For example, you can use NSURLConnection to take care of pretty much all the details of server connection. You can use NSJSONSerialization to convert your data to and from a format that is suitable for sending over the wire.
Basically what you might do is:
Mobile app sends a HTTP GET request to the server for survey info.
Server responds with a JSON description of the survey.
User fills out survey.
When done, the app sends the responses back in JSON format as a HTTP POST to the server.
Server stores the results in the database.
One of the key points here is that the app on the phone does not try to access the database directly. All requests go through your Django web app.