28
Expand Your Apps And Skills To The Wider World AD106

MWLUG 2016 - AD106

Embed Size (px)

Citation preview

Page 1: MWLUG 2016 - AD106

Expand Your Apps And Skills To The Wider World

AD106

Page 2: MWLUG 2016 - AD106

Introduction

Jesse Gallagherhttp://frostillic.usTwitter - @GidgerbyI Know Some Guys - http://iksg.us

Page 3: MWLUG 2016 - AD106

MWLUG’s Unofficial Theme:

Change is in the air

Page 4: MWLUG 2016 - AD106

Agenda

1.Where we’ve been

2.Where we are

3.Why it can be easy

Page 5: MWLUG 2016 - AD106

Disclaimer 1: Darwino

Page 6: MWLUG 2016 - AD106

Disclaimer 2: Situations

Page 7: MWLUG 2016 - AD106

The Situation (previously)

Page 8: MWLUG 2016 - AD106

My Old Goal: Bring Order to the Universe!

Page 9: MWLUG 2016 - AD106

I Failed.

Page 10: MWLUG 2016 - AD106

Let’s Talk About XPages

Page 11: MWLUG 2016 - AD106

The Good News:

XPages isn’t going anywhere

Page 12: MWLUG 2016 - AD106

The Bad News:

XPages isn’t going anywhere

Page 13: MWLUG 2016 - AD106

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

Page 14: MWLUG 2016 - AD106

Our Development Progression

???

???

Page 15: MWLUG 2016 - AD106

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

Page 16: MWLUG 2016 - AD106

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

Page 17: MWLUG 2016 - AD106

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

Page 18: MWLUG 2016 - AD106

Example Application: Social Analyzer

Page 19: MWLUG 2016 - AD106

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

Page 20: MWLUG 2016 - AD106

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

Page 21: MWLUG 2016 - AD106

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

Page 22: MWLUG 2016 - AD106

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

Page 23: MWLUG 2016 - AD106

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

Page 24: MWLUG 2016 - AD106

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>

Page 25: MWLUG 2016 - AD106

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

Page 26: MWLUG 2016 - AD106

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

Page 27: MWLUG 2016 - AD106

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

Page 28: MWLUG 2016 - AD106

Questions?