Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
AUFaculty – Developer’s Guide
Akdeniz University Faculty Information System Development Project
ORÇUN DAYIBAŞ
JULY, 2014
A...
Outline
 Development Environment
 GWT Framework
 General (Non-functional) Requirements
 UiBinder
 GWT-Bootstrap
 Eve...
GWT Framework
 Compiles your Java UI codes into optimized JavaScript ones.
 Resulting code is HTML+JavaScript+CSS. Thus,...
Development Environment
JDK 1.7u55
Eclipse 4.3.2
Maven 3.2.1 (External)
m2e 1.4.0
Subversive SVN 1.1.3 (SVN Kit 1.6)
...
Development Environment
 Thanks to Maven; developers are free to use different Operating Systems.
 1: Deployment scripts...
General (Non-functional) Requirements
 GWT Application (The executives’ decision).
 Software architecture shall be very ...
UiBinder
 A solution to support modularity by separating UI and Business
Logic codes.
 Almost de facto for modern GWT ap...
UiBinder
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
GWT-Bootstrap
 Out of the box GWT widgets lack of responsive UX (Mobile
performance of these widgets are still in questio...
EventBus
 Supports modularity by decreasing boilerplate codes (also makes
easier inter-object communication in the softwa...
MyBatis
 An ORM solution to abstract DB layer from the other layers of
application.
 Based on iBatis (the developers are...
Big Picture
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Project Life-cycle
 Trac is configured and deployed as a project management tool (SVN
repo is integrated).
 Pilot projec...
Project Life-cycle
 Jenkins CI server is configured and deployed as a build server.
 Defect/task management, release pla...
Project Life-cycle
 JavaDoc is also generated after each built and resulting documents
are at the disposal of the develop...
Project Life-cycle
 The project is built at 23:00
every day.
If it’s successful, it is also
deployed to the application
...
Thank you…
AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
Upcoming SlideShare
Loading in …5
×

AUFaculty: A Case Study for Responsive GWT Application Development

649 views

Published on

A case study for developing responsive GWT applications (Development Environment, Continious Integration, Project management approach, etc...).

Published in: Software
  • Be the first to comment

  • Be the first to like this

AUFaculty: A Case Study for Responsive GWT Application Development

  1. 1. AUFaculty – Developer’s Guide Akdeniz University Faculty Information System Development Project ORÇUN DAYIBAŞ JULY, 2014 AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  2. 2. Outline  Development Environment  GWT Framework  General (Non-functional) Requirements  UiBinder  GWT-Bootstrap  EventBus  MyBatis  Big Picture  Project Life-cycle AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  3. 3. GWT Framework  Compiles your Java UI codes into optimized JavaScript ones.  Resulting code is HTML+JavaScript+CSS. Thus, very easy to deploy.  GUI components are very close to Java Swing specification; smooth learning curve.  Ultimate goal: integrating Java developers from diverse areas to web application development domain. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  4. 4. Development Environment JDK 1.7u55 Eclipse 4.3.2 Maven 3.2.1 (External) m2e 1.4.0 Subversive SVN 1.1.3 (SVN Kit 1.6) Google Plugin for Eclipse 3.5.1 AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  5. 5. Development Environment  Thanks to Maven; developers are free to use different Operating Systems.  1: Deployment scripts (Win: deploy.bat, Linux: deploy.sh)  2: Maven definition of the project (SVN repository does not include Eclipse/NetBeans project; they are local and private for each developers). AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  6. 6. General (Non-functional) Requirements  GWT Application (The executives’ decision).  Software architecture shall be very modular (The development team is subject to heavily change).  DBMS is MS SQL Server (Huge legacy data and hard to migrate).  Mobile and Desktop uses are equality important.  Good UX (User Experience) design is very important (Diverse user groups).  DB schema is subject to change. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  7. 7. UiBinder  A solution to support modularity by separating UI and Business Logic codes.  Almost de facto for modern GWT applications.  Each View consists of two parts: AbcView.ui.xml: Declarative user interface code. AbcView.java: Business logic of concerning user interface. More info: http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  8. 8. UiBinder AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  9. 9. GWT-Bootstrap  Out of the box GWT widgets lack of responsive UX (Mobile performance of these widgets are still in question).  Twitter Bootstrap is a de facto solution in responsive web application development.  GWT-Bootstrap wraps the twitter bootstrap components as GWT widgets.  Additional namespaces to UiBinder: b, bb.  More info: http://gwtbootstrap.github.io/ AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  10. 10. EventBus  Supports modularity by decreasing boilerplate codes (also makes easier inter-object communication in the software).  Based on Google Guava EventBus framework.  LOC and complexity decrease dramatically.  Sniffing (to debug) object interactions is easy.  EventBus in GWT Sample: http://www.youtube.com/watch?v=2939gdrNymg AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  11. 11. MyBatis  An ORM solution to abstract DB layer from the other layers of application.  Based on iBatis (the developers are also same).  Unlike the other common ORM solutions, MyBatis maps the methods to queries.  More info: https://code.google.com/p/mybatis/ AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  12. 12. Big Picture AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  13. 13. Project Life-cycle  Trac is configured and deployed as a project management tool (SVN repo is integrated).  Pilot project is AUFaculty but it’s ready to be used in other projects too. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  14. 14. Project Life-cycle  Jenkins CI server is configured and deployed as a build server.  Defect/task management, release planning, etc… AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  15. 15. Project Life-cycle  JavaDoc is also generated after each built and resulting documents are at the disposal of the development team. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  16. 16. Project Life-cycle  The project is built at 23:00 every day. If it’s successful, it is also deployed to the application server. Lets the developers know any broken build with a notification e-mail. AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
  17. 17. Thank you… AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

×