Clientside Framework Selection Criteria for Progressive Decoupling

Total Page:16

File Type:pdf, Size:1020Kb

Clientside Framework Selection Criteria for Progressive Decoupling Client­side framework selection criteria for progressive decoupling This document’s goal is to aid the Drupal community in choosing a JavaScript framework best­suited for progressive decoupling, where ​ ​ Importance legend only parts of the page are rendered through the framework while key integration capabilities with Drupal configuration, modules, and themes are maintained. In short, Drupal­rendered components ought to coexist gracefully with framework­rendered components. M (must have) ​ S (should have) ​ Further reading: “Selecting a client­side framework for Drupal” — “Should we decouple Drupal?” — “The future of decoupled Drupal” N (nice to have) ​ ​ ​ ​ ​ ​ ​ Criteria Most promising Promising Least promising Criterion Why it matters Angular 2 Ember React (V, Elm (lang, Backbone Angular 1 Knockout ​ ​ (importance) (MVC, (MVC, 2.2.0) 0.14.3) compile­to­JS (MV, 1.2.3; in (MVC, 1.4.8) (MVVM, 2.0.0­beta.0) ) core) 3.4.0) ​ Server­side Server­side rendering of framework Built­in Add fastboot Built­in DIY with Add rendr Add ­server Add ​ ​ ​ rendering of templates is important for SEO and Nashorn, prerendered ​ templates (M) performance. Over time, it allows us to Rhino, or ​ migrate to unified templates across Node.js client and server and a server­side JavaScript­based render, whether via in­PHP JS execution or via a thin layer of Node.js. Rehydration / Does the client­side code discover and Planned In progress Yes (add No (DIY) No (DIY) In progress Yes (add seamless state reuse HTML rendered during fluxible) prerendered) ​ ​ transfer (M) server­side framework execution without incurring an additional rerender? Server­side Can an app written to run in the client Yes (built­in) Yes (add No (add Flux DIY with Yes (add Yes (add Yes (add ​ rendering of app be rendered in the server without code fastboot) impl and DI Nashorn, rendr) ­server) prerendered) ​ ​ ​ ​ ​ itself (M) changes? Doing this requires tool) Rhino, or ​ ecosystem­wide coordination around Node.js e.g. data­fetching and build tools. Small payload Large frameworks incur an initialization 168KB 217KB No data 37KB 45KB 49KB 25KB size: TodoMVC cost and deplete mobile batteries (min+gzip@le (min+gzip@le (React needs (min+gzip@le (min+gzip@le (min+gzip@le (min+gzip@l JS as of 12/29 faster. Smaller file sizes mean less JS vel=9); code vel=9) add­ons) vel=9) vel­9) vel=9) evel=9) (M) to download, interpret and execute, size is p1 whether on the client or the server. All before end of frameworks are deeply concerned with beta this (esp. globally­focused Google and Facebook), so this may be a non­issue in the medium term. Execution An ideal framework should execute No data 780ms 308ms 266ms 204ms 344ms 131ms performance: common application tasks (such as (1.4.0 with (0.10.0) (0.16.0) (1.1.2) (1.2.14) (3.1.0) TodoMVC (M) those found in TodoMVC) quickly. Leo Handlebars Horie (Mithril) benchmarked some of 1.3.0) ​ ​ these against a single TodoMVC app, but this relies on outdated releases. Read more about benchmark reliability. ​ Interoperability Frameworks that encompass the entire Entire page Entire page Entire page Entire page Entire page or Entire page Entire page (M) page rather than only encompassing or parts of or parts of or parts of or parts of parts of page or parts of or parts of ​ portions of the page are less page page page page page page well­suited to a progressively decoupled approach, as Drupal would need to cede all control over renders and would be unable to render parts of the page in PHP/Twig. Template A declarative approach could be Declarative Declarative JSX (string Declarative Choose your Declarative Declarative engine beneficial to progressively decouple within DOM within DOM templates); syntax own (string within DOM within DOM ​ friendliness for UIs that are still migrating, while (ng­) and (data­ JSX is through templates) (ng­ in flat or string ​ Drupal themers string­based templates are ideal for string ember) and optional but elm­html HTML) templates ​ (M) larger page components. How friendly templates Handlebars strongly rec’d is the templating system for Drupal (string themers? Does it work well for templates) interpolation into existing Twig files? Code structure A framework’s opinionatedness about More Most Less Not Less More Less unopinionated­ application structure means easy opinionated opinionated opinionated opinionated opinionated opinionated opinionated ness (M) optimization, but it may be overly (framework (framework (library (language). (library (framework (library restrictive for an approach that favors approach) approach) approach) Suggested approach) approach) approach) “pick and choose” (library) over “the project whole nine yards” (framework). structure. ​ Software Drupal is free software using a GPLv2+ Apache 2.0 MIT BSD (free BSD3 (free MIT MIT MIT ​ ​ licensing (M) license. An ideal framework would be (compatible forks not forks not compatible with this licensing, insofar w/ GPLv3+) required) required) as it can be distributed singly with Drupal. Patent rights An ideal framework should lack a None None Restrictive None None None None (M) restrictive patent clause that prevents its use under unrelated conditions. Client­side Client­side routing provides full URL Built­in Built­in react­router elm­router­ha Built­in Built­in DIY routing (M) support for SEO, back button (3rd­party sh (various functionality, and bookmarking. The library) 3rd­party lack of this makes navigation less elm­route­par libraries) easily introspected and breaks a ser fundamental aspect of the web. Nestable Nestable components are important for Yes Yes Yes Yes No Yes Yes components (M) elegant decomposition of complex UIs (marionette) (.component ​ ​ ​ into manageable hierarchies of smaller method) portable, encapsulated pieces. Also see “Future readiness” below for discussion of Web Components support. Robust state The framework’s state system should Model diffing Value diffing DOM diffing DOM diffing Manual Model diffing View model management not trigger a full DOM rerender, which (with JIT (Handle­ (Virtual DOM) (virtual­dom) rerendering diffing (with ​ ​ (M) is bad for performance. Instead, it compilation) bars) observables) ​ should perform partial rerenders (only those components that have changed). Using DOM diffs off the page instead of model diffs may be a performance bottleneck. Robust REST Frameworks either have built­in syntax Built­in (in Built­in Add fetch or Through Built­in but Built­in ($http Manual AJAX ​ ​ support (M) for REST calls or enforce the use of progress, isomorphic­ elm­http syncs with for broad (knockout. jQuery (dependency) to fetch data from better after fetch (maintained server (no AJAX, mapping or a service. Some eschew optimistic beta) by author of optimistic $resource for $.ajax) feedback by saving client­side data Elm). feedback; no RESTful only once the server request is sent, offline; APIs) not ideal for apps in disconnected overridable) environments (mobile or offline­first). Testability (M) Can we test our code using small, fast Good Good Good (also Good Poor (DIY) Good Poor (DIY) ​ ​ ​ unit tests, using standard off­the­shelf unexpected­r tools, without excessive mocking? How eact) ​ well does it work with Drupal testing? Data binding Two­way data binding allows for data One­way data Two­way One­way One­way None (getters Declarative Two­way (M) updated from either the view or the binding data binding data binding and setters; two­way data data binding model to be reflected in the view, but it (one­way (ReactLink DIY) binding ​ often has a detrimental impact on data binding for two­way) performance. One­way data binding will be default allows for a solely unidirectional flow in 2.6) and is usually adequate for most apps. Large Corporate sponsorship or a large Large Large Large Small Medium Large Medium community, backing community help maintain a (Google) (Facebook) (Google) ecosystem (S) robust framework. A large ecosystem entails extensions, plugins, and other incidental projects that aid developers. Maturity (S) Has the framework seen substantial Least mature Mature Most mature Least mature Most mature Most mature Mature adoption from many large enterprises? Also, does it have a long history of effective use in production? API docs and Not only does the framework need to Average Good Good Good Good Good Good learnability (S) have an accessible learning curve for (better by end Drupal developers; front­end of Q1 2016) developers need to be able to use the framework efficiently and to integrate easily into the Drupal community. Debugging Developers desire a pleasant batarangle Ember ­devtools Time­travel ­Debugger batarang chromeexten experience (S) debugging experience such as a tool Inspector debugger sions­knocko that aids not only in isolating errors and utjs (low ​ warnings but also a comprehensive usage) inspector for the structure and execution of the application. Error handling Developers require robust error TypeScript Built­in DIY Strongly and DIY (no error Built­in error Built­in and reporting reporting (e.g. compiler errors, runtime (statically .onerror (3rd­party statically handling handling .onError (S) errors) to aid their debugging process. typed): both method (also libraries) typed, OOTB) method An ideal framework would provide compile­time ­cli­honeybad excellent exhaustive and helpful error reporting and runtime ger) compile­time ​ that minimizes blocked tasks. errors errors, ​ practically no runtime errors Native app Frameworks increasingly have as part NativeScript ­cli­cordova React Native In progress None (DIY) Ionic None (DIY) support (N) of their ecosystem the capability of Ionic 2 (HTML5 to compiling single­page JavaScript React Native native) applications into native mobile applications written in Java and Objective­C. While this does not affect progressive decoupling (unless there is server­side JS), it is useful for full decoupling. Future An ideal framework should have a plan Excellent Excellent Average Excellent Poor Poor Good readiness (N) in place to either provide a polyfill for or (ES6 support, (ES6 support, (Maple.js for (WC­like ​ ​ directly support Web Components, WC­like WC­like WC) syntax) Shadow DOM, and upcoming versions syntax) syntax) of JavaScript (ES6, ES7).
Recommended publications
  • CRISPR/Cas9-Mediated Trp53 and Brca2 Knockout
    Published OnlineFirst August 16, 2016; DOI: 10.1158/0008-5472.CAN-16-1272 Cancer Tumor and Stem Cell Biology Research CRISPR/Cas9-Mediated Trp53 and Brca2 Knockout to Generate Improved Murine Models of Ovarian High-Grade Serous Carcinoma Josephine Walton1,2, Julianna Blagih3, Darren Ennis1, Elaine Leung1, Suzanne Dowson1, Malcolm Farquharson1, Laura A. Tookman4, Clare Orange5, Dimitris Athineos3, Susan Mason3, David Stevenson3, Karen Blyth3, Douglas Strathdee3, Frances R. Balkwill2, Karen Vousden3, Michelle Lockley4, and Iain A. McNeish1,4 Abstract – – There is a need for transplantable murine models of ovarian ating novel ID8 derivatives that harbored single (Trp53 / )or – – – – high-grade serous carcinoma (HGSC) with regard to mutations in double (Trp53 / ;Brca2 / ) suppressor gene deletions. In these the human disease to assist investigations of the relationships mutants, loss of p53 alone was sufficient to increase the growth between tumor genotype, chemotherapy response, and immune rate of orthotopic tumors with significant effects observed on the microenvironment. In addressing this need, we performed whole- immune microenvironment. Specifically, p53 loss increased exome sequencing of ID8, the most widely used transplantable expression of the myeloid attractant CCL2 and promoted the model of ovarian cancer, covering 194,000 exomes at a mean infiltration of immunosuppressive myeloid cell populations into – – – – depth of 400Â with 90% exons sequenced >50Â. We found no primary tumors and their ascites. In Trp53 / ;Brca2 / mutant functional mutations in genes characteristic of HGSC (Trp53, cells, we documented a relative increase in sensitivity to the PARP Brca1, Brca2, Nf1, and Rb1), and p53 remained transcriptionally inhibitor rucaparib and slower orthotopic tumor growth – – active. Homologous recombination in ID8 remained intact in compared with Trp53 / cells, with an appearance of intratumoral þ functional assays.
    [Show full text]
  • THE FUTURE of SCREENS from James Stanton a Little Bit About Me
    THE FUTURE OF SCREENS From james stanton A little bit about me. Hi I am James (Mckenzie) Stanton Thinker / Designer / Engineer / Director / Executive / Artist / Human / Practitioner / Gardner / Builder / and much more... Born in Essex, United Kingdom and survived a few hair raising moments and learnt digital from the ground up. Ok enough of the pleasantries I have been working in the design field since 1999 from the Falmouth School of Art and onwards to the RCA, and many companies. Ok. less about me and more about what I have seen… Today we are going to cover - SCREENS CONCEPTS - DIGITAL TRANSFORMATION - WHY ASSETS LIBRARIES - CODE LIBRARIES - COST EFFECTIVE SOLUTION FOR IMPLEMENTATION I know, I know, I know. That's all good and well, but what does this all mean to a company like mine? We are about to see a massive change in consumer behavior so let's get ready. DIGITAL TRANSFORMATION AS A USP Getting this correct will change your company forever. DIGITAL TRANSFORMATION USP-01 Digital transformation (DT) – the use of technology to radically improve performance or reach of enterprises – is becoming a hot topic for companies across the globe. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-02 Companies face common pressures from customers, employees and competitors to begin or speed up their digital transformation. However they are transforming at different paces with different results. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-03 Successful digital transformation comes not from implementing new technologies but from transforming your organisation to take advantage of the possibilities that new technologies provide.
    [Show full text]
  • Npm Packages As Ingredients: a Recipe-Based Approach
    npm Packages as Ingredients: a Recipe-based Approach Kyriakos C. Chatzidimitriou, Michail D. Papamichail, Themistoklis Diamantopoulos, Napoleon-Christos Oikonomou, and Andreas L. Symeonidis Electrical and Computer Engineering Dept., Aristotle University of Thessaloniki, Thessaloniki, Greece fkyrcha, mpapamic, thdiaman, [email protected], [email protected] Keywords: Dependency Networks, Software Reuse, JavaScript, npm, node. Abstract: The sharing and growth of open source software packages in the npm JavaScript (JS) ecosystem has been exponential, not only in numbers but also in terms of interconnectivity, to the extend that often the size of de- pendencies has become more than the size of the written code. This reuse-oriented paradigm, often attributed to the lack of a standard library in node and/or in the micropackaging culture of the ecosystem, yields interest- ing insights on the way developers build their packages. In this work we view the dependency network of the npm ecosystem from a “culinary” perspective. We assume that dependencies are the ingredients in a recipe, which corresponds to the produced software package. We employ network analysis and information retrieval techniques in order to capture the dependencies that tend to co-occur in the development of npm packages and identify the communities that have been evolved as the main drivers for npm’s exponential growth. 1 INTRODUCTION Given that dependencies and reusability have be- come very important in today’s software develop- The popularity of JS is constantly increasing, and ment process, npm registry has become a “must” along is increasing the popularity of frameworks for place for developers to share packages, defining code building server (e.g.
    [Show full text]
  • Nativescript Layout Widgets
    CS132 Lecture 37: Nobbles Lecture 21 Mobile Applications I 3/4/2020 1 Lecture 1: Course Introduction Web Application Architecture Front End HTTP Web Browser Database Back End Server Front End Web Server Mobile Platform 3/4/2020 2 CS132 Lecture 37: Nobbles Structure of a Web Application JavaScript Event Handling Events AJAX URLs HTML/CSS Back End HTML pages Browser 3/4/2020 3 CS132 Lecture 37: Nobbles Structure of a Mobile Application Native Event Handler Events AJAX Display Page Back End Handler Operating System 3/4/2020 4 CS132 Lecture 37: Nobbles Web and Mobile Differences HTML Front End JavaScript Native Event Handler Event Handler Operating Browser System URL Requests Page Handler 3/5/2020 5 CS132 Lecture 37: Nobbles Mobile Front Ends • Widget-Based o Hierarchy of widgets replaces HTML hierarchy o Text is in label widgets o Widgets exist for buttons, inputs, etc. ▪ Corresponding to HTML form elements o Layout is done using layout widgets ▪ These control how their contents are displayed • Widget Properties control formatting and display • Widgets can be created and nested directly • There is a language for defining widget hierarchies o Generally XML-based static description o Differs on the different platforms HTML Front End 3/5/2020 6 CS132 Lecture 37: Nobbles Mobile Event Handling • The actual code is event-based o Wait for event o Act on the event by starting action that yields new events • Events are similar to those of the browser o Based on user actions o Based on external events (timers, input ready, …) o But not quite the same
    [Show full text]
  • Choosing the Right Javascript Framework for Your Next Web
    Choosing the Right JavaScript Framework for Your Next Web Application by Brandon Satrom © 2017 Progress. All Rights Reserved. All Rights © 2017 Progress. 2018 WHITEPAPER Table of Contents The Current State of Web Frameworks / 3 Tooling Considerations / 22 Evaluation Criteria / 5 UI & Component Libraries / 22 Ecosystem Considerations / 7 IDE & Tooling Support / 23 History & Longevity / 7 Companion & CLI Tools / 24 Popularity / 9 Enterprise Considerations / 26 Corporate Support / 11 Licensing / 26 Community & Ecosystem / 12 Support & Upgrade Paths / 27 Framework Considerations / 13 Security / 29 Getting Started Experience / 13 Talent Pool & Resources / 30 Skill Requirements / 15 Making a Choice / 33 Completeness of Offering / 17 Size & Performance / 18 Beyond the Browser Options / 21 © 2018 Progress. All Rights Reserved. All Rights © 2018 Progress. Progress / Kendo UI 2 The state of web application development has changed drastically in the past ten years. These changes have been spurred on by greater bandwidth for many, more powerful and feature-rich browsers. The result is a thriving web ecosystem with sites, apps and experiences that would have been hard to imagine a decade ago. And yet, for many developers, this ecosystem often feels like a bazaar, stuffed with libraries and frameworks that do anything and everything one could imagine. For every need there are a dozen options to choose from, and with new stalls (libraries) opening every day, it’s no wonder many of us pine for the days when starting a new project was as simple as dropping jQuery in a script tag. The Current State of Web Frameworks There’s no doubt that the web has grown in complexity, and our development tooling options have grown along with it.
    [Show full text]
  • Crossmos Hybrid Mobile Web-Apps & Sencha Platform
    Crossmos Hybrid Mobile Web-apps & Sencha Platform Ruben Smeets Kris Aerts 17/06/2015 Agenda • Hybrid App Technology o Hybrid vs Native vs Web o Patterns o Web portion architecture o Common pitfalls and best practices • Choosing a hybrid app approach • Latest developments • Sencha platform hands-on experience Low Ranking Hybrid vs Native vs Web High Ranking Native apps Hybrid apps Web apps Through native app Search on referrals Ease of discovery stores (Facebook, twitter, etc.) Fragmented across Reach Works on almost all devices multiple platorms Access to Depth of Full acces to platform native API at Limited by browser experience resources the expense of sandbox UI Customer Apple Appstore Complete ownership of ownership & terms enforce onerous terms customer Engagement and Notifications and home No notifications, difficult to recurring use screen icon get user to save the link No accepted method of Monetisation High through payment (Chrome web- potential Appstores store) Ease of cross- Replication developing Significant fragmentation platform for multiple platforms for advanced apps development VisionMobile Cross-Platform Developer Tools 2012 Hybrid vs Native vs Web Low Ranking Continued High Ranking Native apps Hybrid apps Web apps Web content Upgradebility & Through native app updates require No approval needed updates stores ** no approval Debugging & Full support by native Browser debugging tools testing development tools automated testing tools Vendor lock-in No code sharing Limited to no code sharing (framework) between platforms between frameworks Cloud-based Multi-platform Local build for each build tools No cross-platform building build support platform seperately offered by required frameworks **Enterprise app stores require no update approval.
    [Show full text]
  • Planning an Angular Application, from Tooling Choices During Development All the Way Through to Deployment and Performance Strategies
    Planning an Angular Application By Todd Motto © 2017 Progress. All Rights Reserved. All Rights © 2017 Progress. WHITEPAPER Table of Contents Project Management / 3 Accessibility, i18n and Environments / 5 Development Process Methodology / 6 Tooling and Development / 6 Testing Methodologies / 11 Codebase Distribution Strategies. / 12 Mobile and Desktop / 13 Style Guide, Architecture and State Management / 16 Backend API / 18 Performance Strategies / 19 © 2017 Progress. All Rights Reserved. All Rights © 2017 Progress. Progress / KendoUI 2 Planning an Angular (version 2 and above) application is something you may have already done, or will be soon attempting. This whitepaper documents a high-level outline of things to consider when planning an Angular application, from tooling choices during development all the way through to deployment and performance strategies. There’s certainly a lot more to it than meets the initial eye. Project Management Before you get started, you need to consider how you’re going to get the ball rolling - and keep it rolling. This usually starts with project management and discussing and agreeing upon particular toolchains to accomplish your next application. © 2017 Progress. All Rights Reserved. All Rights © 2017 Progress. Progress / KendoUI 3 Software Management Tools To manage the development of the front-end application, you’ll minimally need to select the Software management tools Examples following software management tools to manage code, assets, and team members’ tasks: Issues and feature tracker GitHub, BitBucket, JIRA Ensure that you and your team adopt the tools Version control system GitHub, BitBucket you choose, and frequently assess and improve Document/asset storage Slack, internal network storage, cloud your workflow.
    [Show full text]
  • Building Native Mobile Apps with Angular 2.0 and Nativescript
    Web and Mobile Code Sharing with Angular and NativeScript @sebawita Sebastian Witalec Developer Advocate @Progress @sebawita NativeScript is… an open source framework for building truly native mobile apps with JavaScript. Use web skills, like TypeScript, Angular, Vue and CSS, and get native UI and performance on iOS and Android. “The goal” 聾 Android iOS Web + = + = Architecture Angular Architecture Helping with code sharing Data Binding {{value}} Template < > Component [property] = “value” Property Metadat Event Native Binding Binding \ a (event) = ”handler” Compone Dom nt [(ng-model)] = { } “property” Renderer Renederer Compone Dom nt createElement Element { } setElementPropert y attachViewAfter Template < > invokeElementMeth od … Renderer NativeScript Renederer Compone Mobile nt createElement Element UI Layer { } setElementPropert y attachViewAfter Template < > invokeElementMeth od … Component export class MyComponent { name = 'Sebastian'; twitter = '@sebawita'; sayHelloTo(name) { alert(’Hi ' + name); } } Template <div> name: {{ name }} twitter: {{ twitter }} <button (click)="sayHelloTo('web')">Hello Web</button> </div> <StackLayout> <label [text]=“'name' + name”></label> <label [text]=“'twitter ' + twitter ”></label> <button (tap)="sayHelloTo('mobile')">Hello Mobile</button> </StackLayout > Dependency Injection Http Http call ≠ Http call HttpClientModule import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [ HttpClientModule, … ] NativeScriptHttpClientModule import { NativeScriptHttpClientModule } from
    [Show full text]
  • Meridium V3.6X Open Source Licenses (PDF Format)
    Open Source Components Component Version License License Link Usage Home Page .NET Zip Library Unspecified SharpZipLib GPL License (GPL w/exception) http://www.icsharpcode.net/opensource/sharpziplib/ Dynamic Library http://dotnetziplib.codeplex.com/ 32feet.NET Unspecified Microsoft Public License http://opensource.org/licenses/MS-PL File + Dynamic Library http://32feet.codeplex.com AjaxControlToolkit Unspecified Microsoft Public License http://opensource.org/licenses/MS-PL Dynamic Library http://ajaxcontroltoolkit.codeplex.com/ Android - platform - external - okhttp 4.3_r1 Apache License 2.0 http://www.apache.org/licenses/LICENSE-2.0.html File http://developer.android.com/index.html angleproject Unspecified BSD 3-clause "New" or "Revised" License http://opensource.org/licenses/BSD-3-Clause Dynamic Library http://code.google.com/p/angleproject/ Apache Lucene - Lucene.Net 3.0.3-RC2 Apache License 2.0 http://www.apache.org/licenses/LICENSE-2.0.html Dynamic Library http://lucenenet.apache.org/ AttributeRouting (ASP.NET Web API) 3.5.6 MIT License http://www.opensource.org/licenses/mit-license.php File http://www.nuget.org/packages/AttributeRouting.WebApi AttributeRouting (Self-hosted Web API) 3.5.6 MIT License http://www.opensource.org/licenses/mit-license.php File http://www.nuget.org/packages/AttributeRouting.WebApi.Hosted AttributeRouting.Core 3.5.6 MIT License http://www.opensource.org/licenses/mit-license.php Component http://www.nuget.org/packages/AttributeRouting.Core AttributeRouting.Core.Http 3.5.6 MIT License http://www.opensource.org/licenses/mit-license.php
    [Show full text]
  • Using SAP Cloud Platform Mobile Service, Mobile Development Kit Company
    PUBLIC Document Version: 1.0 – 2018-11-14 Using SAP Cloud Platform Mobile Service, mobile development kit company. All rights reserved. All rights company. affiliate THE BEST RUN 2018 SAP SE or an SAP SE or an SAP SAP 2018 © Content 1 Developing Apps Using the Mobile Development Kit..................................4 2 Language Support........................................................... 7 3 Administrator Guide..........................................................8 3.1 Getting Started.............................................................. 8 3.2 Creating MDK Apps on SAP Cloud Platform Mobile Service for Development and Operations........9 3.3 Setting Up App Security....................................................... 10 3.4 Setting Up SAP Web IDE Full-Stack to Work with Mobile Development Kit.....................10 Creating Destination for Mobile Services in Neo Environment...........................11 Creating Destination for Mobile Services in Cloud Foundry Environment...................12 3.5 Managing Your App Life Cycle with App Update .......................................13 3.6 Building your MDK Client SDK................................................... 14 3.7 Branding Your Customized App.................................................. 16 4 Business Process Expert Guide................................................ 24 4.1 Setting Up the Editor in SAP Web IDE Full-Stack.......................................24 4.2 Importing App Metadata into the Editor............................................ 25 4.3
    [Show full text]
  • Javascript Frameworks for Modern Web Development the Essential Frameworks, Libraries, and Tools to Learn Right Now Second Edition
    JavaScript Frameworks for Modern Web Development The Essential Frameworks, Libraries, and Tools to Learn Right Now Second Edition Sufyan bin Uzayr Nicholas Cloud Tim Ambler JavaScript Frameworks for Modern Web Development Sufyan bin Uzayr Nicholas Cloud Al Manama, United Arab Emirates Florissant, MO, USA Tim Ambler Nashville, TN, USA ISBN-13 (pbk): 978-1-4842-4994-9 ISBN-13 (electronic): 978-1-4842-4995-6 https://doi.org/10.1007/978-1-4842-4995-6 Copyright © 2019 by Sufyan bin Uzayr, Nicholas Cloud, Tim Ambler This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • Ebook Download Iphone Open Application Development
    IPHONE OPEN APPLICATION DEVELOPMENT : WRITE NATIVE APPLICATIONS USING THE OPEN SOURCE TOOL CHAIN PDF, EPUB, EBOOK Jonathan Zdziarski | 268 pages | 06 Nov 2008 | OReilly Media, Inc, USA | 9780596155193 | English | Sebastopol, United States IPhone Open Application Development : Write Native Applications Using the Open Source Tool Chain PDF Book All explained in many small and easy to understand examples. Skip to content. Analytical cookies do not include data that can be traced back to individual persons. You can even search in youtube and will find video tutorials on how to break the chains of your phone. AmyraSheldon Amyra Sheldon I am a passionate tech writer. This article helped me a lot. These include unlimited email support, knowledge base resources, online training and tutorials, exclusive webinars, and a customer on-boarding program. Since you specify that you want your app to end up on the App Store, then, no, there's not really any way to do this. In the next post we will try to install tool-chain on Windows XP box. Business growth : our iOS application development team helps define the best business model for the application, integrate the payment solution, and carry out the purchase. Corona uses lightweight yet powerful Lua scripting language that has been used in Angry Birds, Warcraft, etc. Failed to load latest commit information. Active 8 years, 11 months ago. But do not rush to choose any framework just by its popularity and ratings. In this new edition of iPhone Open Application Development, author Jonathan Zdziarski covers the latest version of the open toolkit -- now updated for Apple's iPhone 2.
    [Show full text]