Im building an app for my wife's preschool and one of the primary things it does is gives the teachers and parents access to a web portal where they can login and create (teachers) and receive (parents) updates and status reports on the individual students. The biggest frustration right now is this- when you open up the app the main screen introduces you to the app and offers 4 buttons (and 4 corresponding tabs) all of which direct you to a specific area of the web portal depending on which button you choose. However, if you are moving quick and click on the first button right away, which 90% of the parents will do, it takes 45-60 seconds of waiting before the website loads up and they can login.
Im wondering if its possible to write into my app that when they first open the app, it immediately calls the URL so that when the parent pushes one of the buttons the app is already loaded, or at least much closer to being loaded up? For some reason when I was learning Xcode I thought I read where Apple frowns on this, but I do not recall exactly. If the app were able to call up the url before the parent starts any navigation, then by the time they did it would already be cached and which ever option they choose it would be ready and they would not have to stair at the spinning wheel for any length of time.
If this is possible, where would you put the code and how would you structure it such that the URL would just be cached and just wait to be called?
Thank you for any feedback, suggestions, ideas, foresight, you can send my way regarding this issue.
Best regards and Happy Saturday!
Thanks for the extra information - lets me ignore the whole warning I gave you before :)
I have a potential way for you to provide the functionality WITHOUT (hopefully) falling foul of the rules. Given your app is already in the store you are significantly more likely (in my opinion) to succeed.
This solution is this - call it a feature! Simple enough eh!
If you add an option to the app that says "Go dorectly to whatever and auto login" and let the user turn it on or off (you could choose the default). Then the user is in control and as they are the ones using the app then the benefit is given ONLY to those that want it, this way it is a decision on their behalf.
What do you think?
BTW appcelerator is a great platform and it is very easy to get going, plus there is lots of help around.
The biggest problem you are going to have is providing an 'app' that is basically a window onto a website - even if it many websites, is something not suitable for an app. It will get rejected straight away - no matter how much hard work you have spent on it.
"Apps that are not very useful, are simply web sites bundled as apps, or do not provide any lasting entertainment value may be rejected".
Someone reported on this Q&A within the last week their app was rejected for the same reason.
You would be better off (in trying to get into the app store) linking to your webserver and accessing information by an API model. The app would be faster and use built in interface elements, thus not triggering the above clause.
However that is a lot of work.
Since you are loading a website, you are bound by the devices browser, not some native functionality on the device. Because of this, any pre caching or preemptive network response would need to be done on the website, not on the device.
You can however try to fake it. You said that the first screen is only buttons that go different places in the portal. So you could remake that screen natively and on app load, instead of loading the initial webview to that page, you can load a native view that looks similar and load a hidden webview that has already started loading that first page. When the user clicks on that first button, you can simply display the webview. This may have some seriously odd side effects, and may or may not work in the way you want. And it will all depend on the device.
Apple does kind of frown upon this, as preemptive network actions cause a whole lot more request data than normal requests. It might be a tossup in this case, since you're just wrapping a webview in a native wrapper anyway.
Regardless of all of this, it sounds like the problem is the portal and trying to work around that problem is usually not going to have the intended results.
Yes I see what you mean. I was very brief in my description too, so I completely understand the logic behind your answer. Actually, I originally built it in Xcode and it is out on the app store right now. However, my CEO had some changes she wanted made, so I am working on version 1.2 and based on the changes she wanted, I decided to try out Appcelerator to see if I could save time and energy in the future because every time I have to make a change, I have to go in and do it to the Android version also.
So with that said, the app does indeed provide long term value and is useful to both teachers and parents for several different reasons. There are many things that the app does, but in testing it with one school I learned that more than 90% of the users first wanted to go see the web portal and were running into the long wait time for load; that is what prompted the question.
I appreciate your response; I like asking questions like this because it helps me learn what others are thinking and what others have already experienced as failure and success. I have already started putting version 1.3 together in my head and Im going to move it to a completely cloud based solution to eliminate several other frustrations that I feel both as a developer, but also when navigating through the app. myself.
Again thank you, John
Anthony thank you for jumping in on this one. Its funny because I had asked this question to the devs. on the apple forum and one of them suggested your idea, and several others pounced on him basically shunning him for making that suggestion and said that Apple would eventually realize whats going on and would not have kind words for me.
Last night I spend some time really digging into this to see what would be the quickest fix, with least change, and best results, and I realized something. If a user opens up the app and sits on the main page for any length of time, by the time they click over to the first or second button, the page loads right away. Its the power users that will open it up and already be trying to click on one of those buttons right away that are going to experience the delay. So, in my mind, the quickest fix is to add something to the main page, even a brief description about the app, or about the school, or about anything interesting enough that they will stop and read it first, and then start their dive deeper into the app. If I were to do something like this, then it would have to be dynamic because once they read it, they would not read the same thing every time they use it, so maybe a daily quote about kids, learning, parenthood, or something that would be new and fresh each day.
Thanks again for your insight. John
Malcolm that is fantastic! I love the idea and if I understand your thoughts completely the user will feel more in control of their experience. I completely agree with you regarding appcelerator, but have not tackled the fact that my work is not showing up in the Android Emulator yet. Everything is installed correctly and appcelerator says everything is up to date and working correctly on the Android side so I made the decision to just push forward and get a finished product for Apple and then go back in and hopefully Im just missing something small for it to be ready for Android. However, yes so far I am in love with this platform.
The only complaint I have so far is that I watch tutorials about it and everyone seems to have code assist but I cannot get it going. That is not a deal breaker because I never really used it in Xcode, but its a feature that I imagine could reduce my development time a bit if it were working.
Lastly, regarding appcelerator, are any of you certified and/or has it gotten enough market reach that the TCAD or TCMD certification are perceived as a value in the market today?
Huge thank you for this again! John
Think you can help? Login to answer this question!