I have a meteor project which I've created for desktop view. Now I'd like to create mobile views for it as well. I'm using bootstrap so it's not a scalability issue. I want the mobile version to show information differently.
Could I achieve this without building two separate apps?
I'm using iron:router so I was wondering if I could make certain templates show for if the device is desktop and other templates render if the device is mobile/tablet?
Indeed - you can use this device detection package from Atmosphere: https://atmospherejs.com/mystor/device-detection
A common use case for device detection is to serve a different user experience to the user based on what their device type is. This will often involve different templates to be displayed to the user.
Related
I Would like to know the technology Facebook uses to sync their desktop and mobile versions.
I'm trying to sync two different installations of Wordpress (desktop and mobile) and only want the users and contents or post to sync to each other. Any suggestions? I'm thinking if there is already such a service or plugin there will be no need to start building it from scratch just for our need.
Thanks
Why is the difference between using a simple phonegap browser app pointed at your site vs using meteor's mobile build options?
a simple phonegap browser app pointed at your site
Not sure exactly why you would be ready to use this option, compared to a simple shortcut / link to your site, or even an "installable" Web App.
Anyway, since you point at your site, it means you require an Internet connection whenever you open your app, and you are limited by what a website can access to on your device.
meteor's mobile build options
It becomes similar to a native app (it is actually called a "hybrid" app), so you can use it totally offline, and you can access more device functionalities (file system, notifications, etc.).
Nothing really specific to Meteor here, it is rather why using a hybrid app v.s. a shortcut.
In the end, you should base your decision on your requirements:
Do you need to access your app while offline?
Is your app primary functionality accessing "real time" content that makes no sense using your app while offline? (like news, forums, etc.)
Do you need to access specific device functionalities, that are not accessible by a normal website?
You should have plenty resources on that topic on the Internet.
Your question might rather be: what is the difference between a standard hybrid app (typically built through Cordova / Phonegap) and one built through Meteor?
In that case, you are asking what Meteor brings specifically? (as it uses Cordova under the hood to build the app)
First of all, you have all advantages of Meteor framework for normal website (minimongo, isomorphic methods, etc.)
You also have by default the Hot Code Push functionality. You can also set it up on your Cordova / Phonegap app, but you will have to configure it yourself, whereas Meteor does everything for you.
Finally, you might benefit from Meteor packages that bring Cordova plugin + client code + server code, something unique to Meteor as it is a full-stack framework.
Recently we have started using Meteor for our apps, but we didn't want to use same layout for all mobile (android and ios) and browser views.
Is there any best way or good practices to build different layouts for multiple platforms without having to duplicate all /server and packages again in different projects? I mean, keeping everything on same place?
I assume you don't have to duplicate the server or anything else but the client folder content. The way I understand it, as long as you use a meteor client, the server side is agnostic of what the client specifically is.
Let's say you want a desktop bootstrap version of your app, and an ionic version for mobile. You just need to route the client on the right client subfolder (bootstrap or ionic) in the Meteor startup code for client depending on their user agent.
Unless you plan to use dedicated servers for each (meaning it would be like two different apps connecting to the same mongo database) there is no way to split everything in two versions and keep it as a single app (i.e. both mobile and desktop clients are handled by the same meteor server process).
Bottom-line: if, after evaluating it, you consider that the delta in the amount of client side code sent is two big between a dedicated version and a multipurpose version (or to rephrase it, the useless packages weight too much), then make two different servers and handle the redirection in a third. If not, keep two different clients working with the same server
Is it possible to make a PhoneGap native app from a Wordpress mobile blog?
I understand that PhoneGap allows you to develop HTML5 apps and turn them into native mobile applications.
I'm looking to create a content distribution app somewhat like the ones so many local news services use (WGAL, Channel 69 News), but to be able to list it in the Android Market Place and the AppStore, as well as be able to access it online all with the same content.
Also are there any alternative methods to accomplish this? Are News apps like that available in some sort of a "canned form"
One way is to essentially you make PhoneGap a web browser without an adress bar. I have an iPhone example here. All I did was make javascript redirect upon loading the application, whitelisted my IP (in the case of the example it's local host) and modified the Appdeligate.m with this piece of code from:
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
return [self.viewController webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
}
to
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if ([[url scheme] isEqualToString:#"http"] || [[url scheme]isEqualToString:#"https"]) {
return YES;
}
else {
return [ super webView:theWebView shouldStartLoadWithRequest:requestnavigationType:navigationType ];
}
}
and voila, a "native" app, with access to all local resources (storage, camera, etc) built on web frameworks! Weather or not Apple or the others will let something like this in their app store I still have yet to investigate but it sure works well for demonstration purposes or personal apps.
We have just created a similar concept using PhoneGap and Application Craft, but Apple rejected the application, this is the message we received:
We found that the experience your app provides is not sufficiently different from a web browsing experience, as it would be by incorporating native iOS functionality to provide a more robust user experience.
While your app content may differ from your web site or other existing sites, the experience it provides does not differ significantly from the general experience of using Safari, as required by the App Store Review Guidelines.
You may wish to provide convenient access to a web property for a select or niche group of users - and may have enhanced that experience with features such as Push Notifications, Core Location, and/or sharing features. However, these features do not provide a robust enough user experience to be appropriate for the App Store.
If you wish to provide quick access to a web property, you may wish instead to provide instructions to your users on how to create a Safari web clip to add to their iOS device Home Screen. Or, if you would like to share the app with a select group of users, we recommend the Ad Hoc distribution method. See the iOS Provisioning Portal for details on Ad Hoc Distribution.
We encourage you to review your app concept and evaluate whether you can incorporate additional features to enhance the user experience.
If you cannot - or choose not to - revise your app to be in compliance with the App Store Review Guidelines, you may wish to build an HTML5 web app instead. You can distribute web apps directly on your web site; the App Store does not accept or distribute web apps.
HTML5 is the major new version of HTML and enables audio and video to play natively in the browser without requiring proprietary plug-ins. Using HTML5, web apps can look and behave like native iPhone and iPad apps, and using HTML5's Offline Application Cache, a web app can work even when the device is offline. With web apps, you have flexibility to deliver as much or as little functionality as you desire.
To get started with iPhone or iPad web apps, please review Getting Started with iPhone Web Apps.
For a description of the HTML elements and attributes you can use in Safari on iPhone, check out Safari HTML Reference: Introduction.
Unfortunately I can not link this as it was a reply to our application submission and not on one of the help platforms. We have not tried Google Play Store yet but from what I understand they will most likely accept the app, will update when we have tried.
I have a large flex application (the app) running on one server, and many small flex applications (widgets) running on another server, which are to be included in the app so that visually the user see's one continuous application. Due to proprietary third party software, this structure cannot be changed. I am looking for some way to allow the app and the widgets to communicate, allowing the app to make changes to the widgets and the the widgets to notify the app when events are triggered, so that user interaction is fluid and continuous.
There are a few related questions which indicate it's possible to do this by setting up event triggers and listeners. I am wondering if there is any standardized way to do this (the answers aren't very clear) or if anyone has developed a library or API to make this easier.
Something I've had success with is using javascript as a bridge between the swf files. It's a nightmare to debug but it works quite well. Check out the tutorial here for a quick discussion of how to interact with javascript from within flash and vice versa
I assume you are running your Flex apps on a client, not a server; is that correct? You want to swfs from multiple servers to act as single application, correct?
I believe that you can communicate between two swfs using LocalConnection:
http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/LocalConnection.html
The other questions you link to seem to talk about loading onw swf inside the oher; which is a separate approach.
Use Modules and ModuleLoaders. You'll be able to set the security context, and if you sublcass the Module class and add your own API, you can have a consistent way to communicate with your modules.
Check here for a simple Module:
http://blog.flexexamples.com/2007/08/06/building-a-simple-flex-module/