iOS hosted web page (user data backup/restore) - xcode

I'm interested in implementing a 'user data' backup facility for the core data sqlite database within my application.
In applications like 'simple pdf reader' you flick a switch in the app and are provided with an IP Address and port number. You then enter these details into a computer browser on the same wireless network and can then get to a web page hosted by the device. This real world example allows copy of pdf files to and from that device's app. I'd like to use the same idea to allow back up and restore of the core data database file in future versions of my app (iHeals)
I've no problem creating web pages, I'm just unsure on how to get my app to host one. Any direction is most appreciated.
Cheers,
Tim

You should take a look at implementing this framework or this one.

Related

ESP32 webserver - reading data from text field

I am absolutely new to this and need some help. I am working on a door lock that can connect to the network and work with the database to sort access and whatnot.
And I am creating an access point mode in which the user can go to the page provided by the ESP32 and set SSID and password of his own network that the ESP32 will then remember - I can create the web, I can create a text field, and submit button but I have no idea how to read that data the user inputted and save it in my variables.
Can you refer me to some website where I can read more about it?
Do you want to go the Arduino/PlatformIO or ESP-IDF route? (For student/hobby Arduino is good, but for professional products I recommend ESP-IDF.)
https://github.com/chmorgan/esphttpd-freertos is a decent working example of WiFi provisioning via ESP-hosted webserver.
It is also a good starting platform to build your app from (it's what I use).

Xamarin - How to render list in backend

Currently I have an application which displays a list of items that when selected by a user it opens said item in the default browser on the mobile device they're using.
Currently because the items are hardcoded into the mobile app using the Xamarin platform then a new version of the app is needed to be released/deployed to every device when wanting to update.
I was wondering if anyone could provide me with any documentation/ideas on how I would be able to carry out adding more items to the list (preferably in a better UI than just a standard list) without having to release a new update.
Some ideas which I have thought about:
Using a CMS - to control the links that need to be open
SQL Lite - Create simple db with item name + url then call the url in the table (then somehow when I update the db its pushed into the app)
Using a cloud service such as Azure to do a similar function as above.
This question is vague, but if someone can point me in the correct direction.
That would be fantastic.
Depending on your knowledge, i would go with Azure or Parse Server and deploy the url's there. Each time you open the app it will fetch the links from the remote server. Both Azure and Parse provides caching so you wont incur any network traffic.
It will also depend how frequently you update the links, if you update them often then go setup Azure and Parse. If you rarely update the links then you can setup a local SQLite database and have a way to check from a remote server if there are any new links available, it they are there then you can pull them into your local SQLite database.

How to move Parse.com database to my own server and still use Parse.com SDK?

I'm using Parse.com SDK services for my Android app.
I've seen that Parse had released their Android SDK as an open source project on Github on this address.
My app is almost finished, and when I'm uploading it to the Play Store, I don't want to be controlled by Parse.com (I mean that I don't want to be blocked someday, or I don't know that), so I want to move my whole database to my own server that hosted on a secure company.
I've checked the open source project on Github and realized that all I need to use it on my own server is to generate an Application ID and a client key.
So I want to ask if someone knows how to generate an Application ID and a client key of Parse to use it on my own server, or that you maybe knows another way of moving it to my server? And one more question: Today I'm using also Facebook SDK with my app. If I will move my database to my own server, will I still be able to use Facebook SDK on my app?
Thanks!
I have write an article about how to migrate parse to a custom server.
https://medium.com/#jcminarro/run-parse-server-on-your-own-server-using-digitalocean-b2a7d66e1205
There's a massive difference between Parse open-sourcing their SDKs compared to revealing their entire backend architecture and its configuration.
The open-sourced SDKs are essentially wrappers for Parse's REST API along with some convenience functions and logic for natively interpreting the JSON data Parse is transmitting.
At a high level, Parse uses MongoDB for its core database and is entirely hosted using AWS (Amazon Web Services). The entire architecture is highly complex and is not something you could just drag and drop onto your own software stack or hardware backend.
To help give you a better idea of how Parse achieves all of their services, here's an interesting presentation their Dev Ops team gave at an AWS convention. Suffice it to say, hosting the backend services for over 180,000 apps requires a complex infrastructure and that is the "secret sauce" so to speak for Parse and is why Facebook purchased them for over $85 million two years ago.

MVC3 FilePathResult and FileStreamResult Replicated Downloads

I was reading a great article here that covers the in's and out's of using ASP MVC for uploading/downloading files. I'll try to keep this short here goes.
My MVC3 app will be running in one place (houston) and its mission will be to allow our employees, all over the world (30 domain controllers) to download various software packages via our Intranet. Today, each of these 30 sites has a replicated "Programs" folder mapped to a shared drive. So, someone in China isn't dowloading an app to install from here in Houston. They'll get if off their logonserver in China. I am able to interrogate the "logonserver" environment variable to determine the server they are on...but short of dynamically building a hyperlink with the UNC embedded (this works by the way)...I can't really use any of the streaming methods specific to MVC because it will end up getting pulled into the box where my web app is running (houston) to be streamed back across some pond. Is my thinking right on this? I prefer to stream because this way I can lock down that Programs folder and only grant the ASP Process the authority to access the replicated folder.

How can a web application synch a folder of text files on the client's PC?

I want to be able to synchronize several text files on a user's PC in real time from my web application. Basically I want a few data files on the local PC to mirror the state of a user's data in my web application so if the web application or the user's internet connection is lost he can use those data files to get some critical info (possibly using html/javascript code stored in with those files that would run in offline mode on those data files.)
I know that google gears has a lot of interesting tools for working with offline state, but I'd prefer an even simpler application in html/javascript that wouldn't be as reliant on google gears. I'd rather use google gears to just create those files and slowly keep them in synch with the web application's version of data throughout the day.
Update on answers:
PersistJS is a good suggestion I will look into, but I was hoping people would direct me towards really good Google Gears tutorials resources.
You can save data on the browser using PersistJS, which uses the best client-side persistent storage mechanism it can find, supporting:
Flash
Google Gears
HTML 5 storage specs
browser-specific extensions
cookies
When your app reconnects, you can resync. Creating and reading text files is something the browser will generally block your web site from doing.
Risking of stating the obvious; if you want to store user state locally, isn't cookies the standard way?
maybe more then one cookie will be needed, but that sounds like the simplest of ways.
You're going to need to make an ActiveX control and a FireFox plugin to get these permissions. Short of that I agree with orip try using PersistJS
You can ask the user to download a subversion client that is predefined to interface with your subversion server only. Then write your web application to interface with the subversion service from your side only.
There is a good deal of security harm associated with granting access to a user's file system so you will want to lock down all possible points of exploitation. You will want to ensure that the user cannot access the subversion server except through the client that you ask them to install. You will want to ensure the connection between the application server and the subversion server is extremely secure so that the transmission path cannot be compromised and that malicious logic that may be loaded onto the application server cannot access the subversion server. I would say to encrypt the transmission path between those two servers and put the subversion server behind the firewall separating your network DMZ. I would also suggest use a challenge/response mechanism between the application server and the subversion server to prevent malicious code from appearing to be legitimate decisions made on the application server. Also, ensure that data only flows form the application server to the subversion server in a unidirectional fashion only, because if there is malicious logic planted on your application server then any data that comes from the subversion server is compromised without even accessing that server.
you could use the File System Object FSO through javascript, however it is dependant on Microsoft as it is an ActiveX control, it would also require permissions in the browser, or perhaps a HTA (HTML Application).
http://www.webreference.com/js/column71/
Its a real security issue so most avenues are closed down inhrentley.
Inherently the web model was designed not to authorize upstream from server to client. Now things are changing slowly maybe could you do this with Websocket ?

Resources