Zen and Mobile Development

neversinkhurriedMobile - Wireless

Nov 12, 2013 (3 years and 7 months ago)

89 views

Zen and Mobile Development
Bill McCormick
Russia
September 2011
Zen roadmap for Modern Solutions


• JSON
• $$$TEXT in Javascript
• Browser changes
• HTML5 and CSS
• Graphical Report Editor
• New Portal
• Mobile Interfaces
JSON


• JSON
– JavaScript Object Notation
– Fancy terminology for name value pairs in an array
– Supported in Zen since 2010
– Benefits
• Late Binding
• No requirement for predefined structures or classes
• Flexibility
JSON Continued


• Critical Concepts
– Sending data to the client
• OnGetTargetObject()
– Code to populate the provider from an object. Can be a single
layer of a class or a generic proxyObject
• OnGetArray()
– Code to put array in provider
• OnSubmitContent callback
– Handler for receiving JSON data server side
• OnRenderJSON()
– Lets you just write out a JSON structure
• ParseJSON()
JSON Continued


• Critical Concepts
– Manipulating JSON on the Client
• getContentObject()
– Code to move data from provider to local JS array
• reloadContent()
– Recalls the OnXXXX method from the client to get
new or
modified data from the server
New for JSON


• 2011.1
– JSON Provider now subclasses the MVC abstract
controller
– This allows the provider to act as a data controller for
MVC enabled forms and components
– We plan to provide low level Server Side APIs for
generating JSON from structures and parsing JSON into
data structures independently of the Zen Framework
Localizing Zen Content


• Well documented support for $$$Text in Zen pages
• Generates entries in the language dictionaries automatically
for Zen components that are specified to have
ZENLOCALIZE=1 or inherit from a datatype that has this
setting in place already like %ZEN.datatype.caption for
example.
• Automatically will load the appropriate text given the session
settings for language.
$$$Text in JavaScript


• New in 2011.1
– $$$Text() has been added as a client side function
– It is not a macro, it is a function call implemented in
zenUtils that takes 2 arguments
• The ID for the given piece of text
• The domain optionally if you want to override the default
specified at the page level
– Allows for simpler working with client side localized text
– Previous client side methodologies will continue to work
Browser Support Policies


• For 2011 and up
– IE, FF, Chrome, Safari, Opera, iOS, Android based
platforms are supported for web development
– Various MPs are restricted to subsets as specific
applications
– Work is ongoing to ensure reliable experiences on tablet
devices
IE 9


• Supported only on Vista and Windows 7
• Please be quick to report any bugs or problems you encounter
with IE 9 in a timely fashion via support
• 1 known issue
–Must reinstall Adobe plugin for previous versions
IE9 Impact


• Telling IE 9 you are serving it an HTML 5 doctype content and what
happens?
– Great things if you happen to be an SVG component!
• This “just works”
• Challenges and benefits for ISC
– Remove dependency on IE for EMP/BPL/DTL editing
– Add support for FF, Safari, Chrome for Ensemble
– Reduce the complexity of our code
– If you are a Zen component?
• Not so good.....
• But IE 9 appears to break in all the same ways now that FF,Safari and
Chrome do

We have a variety of rendering issues mostly in the component library
if you try to specify an HTML5 doctype

HTML 5 / CSS 3


• IE 9 is the first real attempt by MS at shipping a standards
based browser similar in behavior to the other players in the
industry - Firefox, Safari, Chrome and Opera
• All of these browsers are planning to implement rich support
for HTML5 and CSS 3.0 standards
• Unlike initiatives in the past this seems to have the backing
needed to gain real traction in the market
HTML 5 Plans


• We will add logic to detect if a browser supports HTML 5. If yes
we will automatically add the HTML 5 doctype
• We will add a new default style block called CSS3Style to all Zen
pages. At runtime we will ship this style block for HTML 5 docs
and the original Style block for other browsers. We won’t send
both to the client
• We will do the same for all Zen components as well
• We will change the current functions that detect IE and have them
fail when it is IE 9 running as an HTML 5 doctype
HTML 5 When?


• We have some additional work to do to add the features
discussed above. Most of this should be available in 2011.2
• We need to modify slightly some of our components that are
showing issues in HTML 5 mode
• We will incorporate support for this now and it will be
available in a public field test for 2011.2
• We will officially support HTML 5 and CSS 3 for 2011.2
Graphical Report Editor


• Yes it is really almost here!
• What does it look like?
Report Editor


• The primary development focus has been Deep See related
• The editor will be available to VARs to use without a Deep
See license
• End Users will not have access to the tools without a Deep
See license
• How’s it work?
Implementation Details


• There is no “Master UI Report Editor”
– We provide a UI for a “family” of report types
• Line Item Detail Reports
– One record per line
• A Form
– Pre-formatted with specific locations for data
• Small Multiples
– Think a mailing list labels output
• Form Letters
• Presentation
– Free form reporting
• We will focus on the first two for the preliminary release
Further details


• Data collection is completely abstracted from the layout
editor
• Customers who have implemented an existing Zen Report
will be able to reuse the code that generated the resultset
and simply build a new layout in the editor
• You will not be able to manipulate current Zen Reports in the
editor
Rollout


• This feature will not be in 2011.2
• We will have a separate beta this fall of this functionality
• It will be a feature of 2012.1
• Details on the beta will be published to the Zen Community
as we get closer
New Portal extensions


• The new portal is extendable by design
• CSS is provided as well
• %ZEN.Portal.standardPage
• Add pages, modules, dashboards
Mobile Devices


• iPad
– Work completed to support iPad
• What has to be changed?
– mouse events
– hover events
• What will be added
– touch events
– touch arrays
– HTML 5 events
• Android based tablets??
– As Android based ones ship we plan to confirm that the changes already
tested just work
• 2011.2
• Sample - scribbleArea component
Mobile Devices


• Zen Mobile
– We plan to provide a widget that can be uploaded to the various app
stores that can be used to construct a UI fronting a Cache / Ensemble
based application for our VARs
– The UI will use Zen based mechanisms for rendering
Questions?


• bill.mccormick@intersystems.com

Zen & Mobile Development
Bill McCormick
Russia
September 2011