Upload
jesse-gallagher
View
440
Download
0
Embed Size (px)
Citation preview
Expand Your Apps And Skills To The Wider World
AD106
Introduction
Jesse Gallagherhttp://frostillic.usTwitter - @GidgerbyI Know Some Guys - http://iksg.us
MWLUG’s Unofficial Theme:
Change is in the air
Agenda
1.Where we’ve been
2.Where we are
3.Why it can be easy
Disclaimer 1: Darwino
Disclaimer 2: Situations
The Situation (previously)
My Old Goal: Bring Order to the Universe!
I Failed.
Let’s Talk About XPages
The Good News:
XPages isn’t going anywhere
The Bad News:
XPages isn’t going anywhere
The Situation Now• XPages brought us forward
• …but only some of the way• The core didn’t move forward• OSGi can be peculiar• The Java version lagged behind
• …and the IDE didn’t encourage it anyway
Our Development Progression
???
???
It’s a Big World• Lots of languages: Java, JavaScript, Python, Ruby…• Even more tools: Maven, Gradle, npm, gulp, grunt…• Differing philosophies: pure client side/mixed,
microservices/monoliths• It’s not just JavaScript: the state of the art everywhere
changes rapidly• Just look at WWDC
• This can create choice paralysis
The Good News• There’s a lot of overlap, both in tooling and in concepts• It’s not necessary to go all-in on one stack• The core concepts are more transferrable than ever
Maven Recap• Build system for Java (and other) applications• Handles dependencies automatically
• Similar in ways to OSGi, but with important differences• There are newer systems, but it’s something of a baseline• There’s a certain amount of pain when dealing with OSGi, but
that’s not entirely Maven’s fault• Learning Maven gets you familiar with other related systems
Example Application: Social Analyzer
Example Application: Social Analyzer• AngularJS with Angular Material• Runs on standalone Java servers, mobile devices, Bluemix,
and Azure• Connects to third-party services such as Twitter and Slack• Integrates with Bluemix services: Watson and DashDB• Embeddable in Connections Cloud
AngularJS• Client-side app framework• Implies a technical split in the app between server-side REST
services and client-side JS• Enforces a strong MVC programming model, with a
JavaScript flavor
Angular Material• Angular implementation of Google’s Material Design• One of several popular mobile/responsive UI toolkits• Great for covering all devices*
* …assuming you’re okay with them all looking like Android
Third-party JS Libraries• Angular Material, Chart.js, Font Awesome, and so forth• Using npm, dependencies can be downloaded automatically• Saves a TON of hassle compared to manually tracking down
and embedding dependencies
Deployment Servers• As a servlet-based Java app, it can be deployed to standard
servers• This provides a great deal of flexibility, and smooths the path
to cloud• When in doubt, Tomcat does a fine job
Social Feeds• One of the great benefits of Maven:
<dependency><groupId>com.ibm.watson.developer_cloud</
groupId><artifactId>java-sdk</artifactId><version>3.0.0-RC1</version>
</dependency><dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-core</artifactId> <version>[4.0,)</version></dependency>
<dependency><groupId>com.github.flowctrl</
groupId><artifactId>slack-api</artifactId><version>v1.2.0.RELEASE</
version></dependency><dependency>
<groupId>com.rometools</groupId>
<artifactId>rome</artifactId><version>1.6.0</version>
</dependency>
Bluemix and Connections Cloud• Watson’s Tone Analyzer is just a REST API• DashDB is just a JDBC-accessible database
• Development is done through embedded widgets• The parent page provides an API to read (some) information
about the environment• By using this, you can customize your app for the user and
community• Since it’s “just” an iframe, the app can be deployed anywhere
Darwino.org
• A venture of OpenNTF• Forthcoming sister site focusing on Darwino-related open-
source projects• One way for OpenNTF to remain active and moving forward
Conclusion• There’s a lot to learn• …but you don’t have to learn all of it!• The key is having an idea of what’s out there and learning the
common concepts• Pick a moving platform and hop on it for a while
Questions?