Interview with Appery.io architect: Sasha Piskun

Posted: June 23rd, 2011 | Author: | Filed under: Articles | Tags: | 2 Comments »

(Cross-posted on Maxa blog)

Sasha Piskun is Appery.io Chief Architect. Sasha recently moved to Exadel’s Concord office from Exadel’s Donetsk office in Ukraine. He has many years of experience designing and building large enterprise applications. We are very happy to have him in Concord where he leads Appery.io development and prepares Appery.io Mobile App Builder release in late summer. Learn more about Appery.io Mobile Apps Builder and sign up for private beta here.

Please describe the application.
Appery.io (http://appery.io) is web-based application for building and sharing interactive HTML prototypes. Here are some main Appery.io features:

  • Web-based, nothing to install or download
  • Use large number of web components and layout containers
  • Use jQuery Mobile components to design mobile prototypes
  • Create highly interactive prototypes by defining events such as opening a pop-up and navigating between pages.
  • Share and collaborate during design with users and customers to get feedback
  • View and share the prototype in any web browser and mobile browser to get feedback
  • Create and use page templates
  • Create and use custom components
  • Add notes and comments to prototype with annotations feature
  • Export to HTML to view the prototype locally or use as starting point for application UI.

You should be able to create prototype which look and behave as close as possible to the real application and Appery.io will allow you to do that. Anyone can try creating their first prototype at http://appery.io.

I also want to take a step back and tell readers why mockups, which many are familiar with are different than prototypes. Many readers are probably familiar with mockups and might be wondering why not use mockups. Mockups are used in many projects, usually during project requirements phase to show how the UI will look.

Mockups is good tool to use, however, mockups suffer from a number of drawbacks today. First of all, mockups are static. Today, interfaces are very interactive with Ajax-like features and it also very common now to use pop-ups in application UI. Expressing such interactivity or navigation is just not possible with static mockups. The most you can really get from a mockup is a image.

Secondly, mockups don’t give you a realistic view of the UI. Mockups are typically drawn using lines and shapes such as boxes, circles, and rectangles. You sometimes also get hand-drawn like components. With such tools you can create an outline or draw the shape of various UI elements; however, this won’t give you a realistic view of the user interface.
There is a big gap between the mockup and how the application will look inside a web browser.

Thirdly, sharing and collaborating is usually done using the same old approach – e-mail. Most mockup tools let you save the mockup as an image which can then be shared via e-mail. Getting feedback or collaborating on the mockup becomes a challenge. You end up e-mailing the mockup image back and forth among project members asking for feedback followed by the resending an updated mockup image.

How many users were there for this application, and what stage is it in currently?
Today Appery.io is used by thousands of users. We see a steady increase in new registrations and users.

How large was the development team, and what were the different roles?
The team that develops Appery.io consists of 1 System Architect, 6 Java developers and 4 Flex developers. Appery.io team also has 2 quality assurance engineers. This team structure is rather flexible, the actual number of people working depends on the scope in current release.

What resources did you use (books, web sites, consultants)?
As the creators of RichFaces, we used our expertise in-house to build the application. Same thing for Flex. We have used Flex on numerous projects and have very strong Flex experts in-house who we used for build Appery.io.

What have the users said about the application?
We have been getting very positive feedback. Although there are a number of existing mockup creation tools out there, the market was ready for next generation tool. Just an image is not enough today. Users want to view the prototype in a web or mobile browser, users want to define events and actions such as navigation, open a pop-up or hiding/showing a component.

What is your development platform?

Appery.io technology stack consists of the following:

  • JSF 1.2
  • RichFaces 3.3.3
  • JQuery 1.5.2
  • JQuery Mobile 1.0.a4
  • FreeMarker 2.3.9
  • Seam 2.2
  • JPA/Hibernate 3.3.1.GA
  • Flex 3
  • Flamingo 2.1

As for development tools (IDE), our team uses JBoss Tools and Flash Builder 4.

Appery.io uses an interesting mix of technologies. We used JSF with RichFaces for pages such as Login, Projects list page, and Profile page. The back end is Seam, and naturally we used JPA for persistence. I guess so far it’s not that interesting. Now, when you open any particular project, the actual editor where you design the prototype is Flash/Flex. The Flex portion talks to the same Seam-based back end. The communication between Flex and Seam is done with Exadel Flamingo (http://exadel.org/flamingo).

I’m sure some readers might ask, why not use HTML everywhere, even for the editor? When we launched Appery.io last year, we wanted (of course) to get something fast out there. We had Flex expertise in-house and knew that what we are trying to do can be done with Flex. Today it’s definitely possible to accomplish with HTML5. It’s possible that HTML5 support in some browsers wasn’t as good then as it is today. So we didn’t want to spent time trying to figure out which JavaScript library would work best. Having said that and moving forward, we are considering switching entirely to HTML5 for the entire application.

What is your deployment platform?
Appery.io is deployed on Tomcat and Nginx (HTTP and reverse proxy server).

Appery.io was always in the Cloud as it’s a web application and available to anyone and anywhere with an browser and Internet connection. Up until last month, it was hosted on Exadel servers. Appery.io has experienced a tremendous growth. To accommodate this growth as well as increase performance and allow for better scalability, Appery.io application is now deployed on Amazon EC2. Amazon EC2, the industry leading Cloud Platform, will provide Appery.io with unlimited growth potential, increased performance, allow for better scalability and better security.

Which JSF implementation did you use?
We use Mojarra (JSF 1.2) as the implementation with RichFaces 3.3.3.

Did you use any custom or third-party components?
We use jQuery 1.5.2 and jQuery Mobile frameworks.

Did you use any other technologies (like Tiles, Hibernate, Spring, etc.)?
In addition to JSF/RichFaces and Flash based user interface, we also use Seam 2.2, JPA/Hibernate (3.3.1.GA), RESTEasy (1.1.GA), FreeMarker (2.3.9).

Is there a URL where we can see the completed system?
Absolutely, any one can try Appery.io today at http://appery.io. If there are any questions or feedback, this is the place to tell us what you think: http://getsatisfaction.com/apperyio. Lastly, check this blog and Appery.io on Twitter: @apperyio.

Great, thank you for your time.