Writing Open Source Software for BlackBerry



Similar documents
CSPA. Common Statistical Production Architecture Descritption of the Business aspects of the architecture: business models for sharing software

Foreword. Contents. Edos - Sixth Framework Programme - Priority 2 1

Software Development Environment. Installation Guide

An Open Source Work Shop. Luciano Resende Haleh Mahbod Aug. 2008

Impact of cloud computing

Open Source vs. Collaborative Software: FOSS is Not Enough

Increasing the efficiency of free software projects through information management

Moving a Commercial Forecasting Product to Open Source

Build Management. Context. Learning Objectives

Software Development In the Cloud Cloud management and ALM

FOSS License Restrictions and Some Important Issues

OPENING UP: EXPLORING OPEN SOURCE, OPEN DATA, AND OPEN REFERRAL

Selection and Management of Open Source Software in Libraries.

Open Source Software Development

Open Source Software Usage in the Schools conceptual strategy

Open-source business models: Creating value from free stuff'

Server Settings Mobile Devices

Leveraging Open Source / Freeware Solutions

Web Hosting: Pipeline Program Technical Self Study Guide

Government Open Source Software GSAW 2013

GPL, MIT, BSD, GEHC (and me)

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

NATIONAL CYBER DEFENSE COMPETITION. Competition Scenario

IceWarp to IceWarp Server Migration

What is Open Source (Quick Answer)? Collaboration Platform for Web Applications. Virtuous Cycle Model of Open Source (2/2)

Categories of Free and Nonfree Software

Open Source Software: Recent Developments and Public Policy Implications. World Information Technology and Services Alliance

How To Value Open Source Software

A microeconomic analysis of commercial open source software development

FirstEnergy, generating excellent service.

Initial Setup of Microsoft Outlook 2011 with IMAP for OS X Lion

On the Influence of Free Software on Code Reuse in Software Development

Of Penguins and Wildebeest. Anthony Rodgers VA7IRL

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

An Introduction to the Legal Issues Surrounding Open Source Software

Is the Scanning of Computer Networks Dangerous?

Kerberos + Android. A Tale of Opportunity. Slide 1 / 39. Copyright 2012 yassl

Outlook Express. Instructional Manual

alchemy webapp framework Introduction What is alchemy?

Traditional Commercial Software Development. Open Source Development. Traditional Assumptions. Intangible Goods. Dr. James A.

l What is Android? l Getting Started l The Emulator l Hello World l ADB l Text to Speech l Other APIs (camera, bitmap, etc)

Automating Functional Tests Using Selenium

Easing embedded Linux software development for SBCs

Microsoft Exchange ActiveSync Administrator s Guide

Linux VPS with cpanel. Getting Started Guide

Open Source Voting Systems

CatDV Pro Workgroup Serve r

An Introduction to Software Development Process and Collaborative Work

Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7. Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7

WineWeb Account Services

Aspire Systems - Experience in Digital Marketing and Social Media

Open Source Software: critical review of scientific literature and other sources

Implication on society, economy and education

SA4 Software Developer Survey Survey Specification v2.2

Managing risks associated with open source software

Software Licensing is like Programming

Evaluation of Load/Stress tools for Web Applications testing

GUI Test Automation How-To Tips

VOL. 2, NO. 1, January 2012 ISSN ARPN Journal of Science and Technology ARPN Journals. All rights reserved

Innovative Program to Access VMware Tools

Using Cloud Services for Building Next Generation Mobile Apps

Better Automation Environments

Open Source Compliance: The Challenge of Managing Abundance. Peter Vescuso Black Duck Software

Booth Gmail Configuration

Linux, Open Source, and IBM: The Next Decade

Hosted Managed by Specialists

The Desktop Sharing Handbook. Brad Hards

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Welcome to Apache the number one Web server in

TI Linux and Open Source Initiative Backgrounder

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Your Cloud, Your Data, Your Way! owncloud Overview. Club IT - Private and Hybrid Cloud. Austrian Chambers of Commerce Vienna, January 28th, 2014

Presentation. Open Source is NOT Free. For ISACA. By Dave Yip / Gamatech Ltd. Agenda

Migration guide. Business

Discovery Session Document Micro Business EE Web Portal June, 2013 v.1.4

BOTTOM UP THINKING SETUP INSTRUCTIONS. Unique businesses require unique solutions CLIENT GUIDE

Android Mobile App Building Tutorial

MALAYSIAN PUBLIC SECTOR OPEN SOURCE SOFTWARE (OSS) PROGRAMME. COMPARISON REPORT ON NETWORK MONITORING SYSTEMS (Nagios and Zabbix)

Volume SYNAMETRICS TECHNOLOGIES. A Division of IndusSoft Technologies, Inc. DeltaCopy User s Guide

Rockets Smartphone Configuration. Spring 2012 Edition

New Features Available in SmarterMail 7.x Improved Searching Synchronization Center Redesigned Webmail Interface File Storage

Lecture 1: Introduction to UNIX

The Benefits of Utilizing a Repository Manager

Setting Up on Your Palm. Treo 700wx Smartphone

using version control in system administration

Google and Open Source. Jeremy Allison Google Open Source Programs Office

Oracle Application Express MS Access on Steroids

ERIKA Enterprise pre-built Virtual Machine

Porting VNC to Mobile Platforms

Mobile Application Testing

Open-Source vs. Proprietary Software Pros and Cons

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

GPL, MIT, BSD, OSS (and me)

Open Source Business Intelligence Costs and Benefits

Best Practices for Java Projects Horst Rechner

White Paper. Anywhere, Any Device File Access with IT in Control. Enterprise File Serving 2.0

Jenkins on Windows with StreamBase

Free software GNU/Linux TOR project

AXIGEN Mail Server. Quick Installation and Configuration Guide. Product version: 6.1 Document version: 1.0

IT Peace of Mind. Powered by: Secure Backup and Collaboration for Enterprises

Transcription:

Writing Open Source Software for BlackBerry Derek Konigsberg, Software Engineer B10

Introduction About Me Derek Konigsberg Desktop developer by day (C#, with some Java and C++) Mobile developer by night (Java on BlackBerry) My history with open source software First installed Linux in 1994. (SLS, a precursor to Slackware) Was introduced to *BSD in 1999. (FreeBSD, NetBSD, OpenBSD) Active member of several local user groups Started the LogicMail for BlackBerry project in 2006

Overview Open source tools Introduction to Open Source Candidate Projects Makeup of an Application What Open Source Offers Project Case Study Survey of What is Out There

Open Source Tools That You Can Use Now!

BlackBerry Ant Tools http://bb-ant-tools.sf.net/ License: GNU GPL A collection of ant tasks for building BlackBerry applications Wraps RIM s rapc build utility Very convenient for separating your build process from an IDE <taskdef name="rapc" classname="ca.slashdev.bb.rapctask"> <classpath> <pathelement location="../lib/bb-ant-tools.jar"/> </classpath> </taskdef> <target name="build"> <mkdir dir="${dist.dir}"/> <copy file="${src.dir}/app.png" todir="${dist.dir}"/> <rapc output="${module.name}" srcdir="${src.dir}" destdir="${dist.dir}" jdehome="${jde.home}"> <jdp title="${module.title}" vendor="${module.vendor}" version="${module.version}" type="cldc" midletclass="org.generic.fooapp" icon= app.png"/> <src> <fileset dir="${src.dir}"> <include name="**/*.java"/> <include name="**/*.rrc"/> <include name="**/*.rrh"/> <include name="**/*.png"/> </fileset> </src> </rapc> </target>

KeePass for BlackBerry http://sf.net/projects/keepassbb/ License: GNU GPL BlackBerry password database application Has grouping, multiple storage options, import/export, etc.

Barry - Sync for Linux http://www.netdirect.ca/software/packages /barry/ License: GNU GPL BlackBerry desktop synchronization software for Linux Supports charging, data synchronization, backups, and modem use

What is Open Source all about?

What is Open Source? Free redistribution Must include source code Must allow derived works Maintains the integrity of the author's source code No discrimination against persons or groups Distribution of license License must not be specific to a product License must not restrict other software License must be technologyneutral No discrimination against fields of endeavor Adapted from The Open Source Definition http://www.opensource.org/docs/osd

What is Open Source? The simple version Software developed by a community of people that is freely and openly available, with source code. Software that the users have the freedom to modify and redistribute.! Free speech Free beer

Why Open Source? Lowers user barriers to adoption Dramatically increases developer interest Raises the relative value of what developers actually like to do: Design and build better BlackBerry software Avoid having to reinvent the wheel Leverage what others have done before Customers become involved in tailoring the software to suit their needs

Distribution Approaches Commercial / Shareware Value as a supported product Updates from a sole source who has an incentive to provide them If abandoned, quickly becomes worthless and often unavailable Freeware Value as a current product, with no assurances of future value Updates from a sole source who has no incentive to provide them Easily abandoned once the developer loses interest, giving users no recourse Open Source Value As a supported product As a body of source code Building a community involving the developers and the users Updates Provided by developer Provided by the users Longevity If abandoned, can be easily picked up by others Users are empowered to support it themselves

Candidate Project Types Reusable libraries UI solutions Network connection management Developer tools Integrated Development Environments Testing frameworks Build utilities Utility applications Full-blown applications

What makes an application? Project Management Tools Planning Issue tracking Development Tools IDEs Build automation Source control Common Libraries Platform API Platform integration code Testing frameworks Utility code User interface support code Application-specific Code Final Integrated Application How much is really proprietary? How much just makes your life easier?

What makes a great platform? Well supported development environment Selection of capable development tools Flexible platform API and documentation Availability of common libraries and examples Covers everything left out of the platform API Avoids the need to constantly reinvent the wheel Helpful community of developers Gets you out of those rough spots Provides a source of tips and best practices Open Source is the best facilitator!

How does Open Source facilitate? Everyone needs development tools But not everyone wants to write them Everyone needs common libraries But not everyone has the time to maintain them Everyone wants to be part of a community But not everyone knows how With Open Source, much of the effort can be shared by all. This way, you can focus on what you really want to be developing.

But why should I help my competitors? With Open Source software, you increase the overall value of the BlackBerry solution. The more valuable the BlackBerry solution, the more great software is written for it. The more great software exists for the BlackBerry solution, the more users adopt it. In other words, would you rather: Have a good application on a platform with few good applications -OR- Have a great application on a platform with many great applications

What does Open Source offer? Increased interest in the project I could modify this to meet my business needs, instead of rolling my own from scratch. If its insecure, I can figure out why. External contributors I really wish this had a certain feature, but no one is working on it. I might as well do it myself. This thing has a bug only seen in my environment. No one else will be able to fix it for me. Widespread popularity Open source software can adapt better to the users, because the users play a role in developing it Reducing barriers to entry always drives adoption

License Options GNU General Public License Software is open source Author maintains copyright Derived work must also be open source, licensed under the GPL BSD-Style License Software is open source Author maintains copyright Limited to no restrictions on derived work Sometimes has an attribution clause Dual-license GPL-style or BSD-style Limited support Usually a free version Attracts users to build a community Commercial license Fully supported For users who typically pay for software May include additional features May include additional licensed code Note: There are many more licensing options. However, most of them fit within the above categories

Open Source Builds a Community With closed source, you have two sides: The maker of the software The users of the software With open source, its so much more! The integrator of the project The contributors The users of the software Entities that want to benefit from synergy in the community Lets put support for our support for our company s infrastructure in this popular client application.

How do you get started? Decide what you will be open sourcing Existing project you have the rights to release New project being started Portion of a new or existing project that is sufficiently common and non-proprietary in nature Decide which license you will be using Straight-up GPL-style or BSD-style Company-specific license that still meets open source criteria Multi-license approach Provide a public face to the project Release and celebrate!

LogicMail for BlackBerry A project case study, from the front lines

LogicMail Case Study Why did the project get started? There was a need waiting to be fulfilled No currently supported application met my needs for a standalone non-service-based E-Mail client One abandoned open-source project was on the same track, and could be leveraged (Mail4ME) One abandoned commercial project might have worked, but vanished from availability (ReqWireless EmailViewer) Perfect candidate for open source Wanted to increase the selection of open source software for the BlackBerry solution Was more interested in using the software than profiting off of it Wanted to release early and often, without customer pressure Open user involvement helps to drive feature plans

LogicMail Case Study Gathering the development tools RIM BlackBerry JDE http://na.blackberry.com/eng/developers/ License: Proprietary Usage: Platform API, build tools, and device simulator Eclipse http://www.eclipse.org/ License: Eclipse Public License Usage: Development IDE Subversion http://subversion.tigris.org/ License: BSD-style Usage: Source control CruiseControl http://cruisecontrol.sf.net/ License: BSD-style Usage: Continuous integration build system Apache Ant http://ant.apache.org/ License: Apache License Usage: Build automation BlackBerry Ant Tools http://bb-ant-tools.sf.net/ License: GNU GPL Usage: Ant wrapper for the BlackBerry JDE build tools Trac http://trac.edgewall.org/ License: BSD-style Usage: Integrated issue tracking, project management, and project web presence

LogicMail Case Study Leveraging other projects Mail4ME http://mail4me.objectweb.org/ License: Enhydra Public License Usage: Starting point for network connection management and mail protocols Modifications: Bug fixes and reimplementation where necessary Fast MD5 Implementation in Java http://www.twmacinta.com/myjava/fast_md5. php License: GNU LGPL Usage: MD5 support for authentication mechanisms, without imposing the code signing restriction of RIM s MD5 API. Base64 Encoder/Decoder http://iharder.net/base64 License: Public Domain Usage: Base64 encoding/decoding support on OS v4.0 devices J2MEUnit http://j2meunit.sourceforge.net/ License: Common Public License Usage: Unit testing of non-interactive application code Modifications: Project integration and custom test-runner UI Tango Desktop Project http://tango.freedesktop.org/ License: Creative Commons Share-Alike Usage: Application icons Modifications: Minor tweaks to suit specific icon use cases

LogicMail Case Study Providing a public presence for the whole project Decided to use a BSD-style license Created a project on SourceForge.Net Provides project visibility to the community Also provides hosting services for web, source control, issue tracking, forums, mailing lists, etc. Created a project website Provides public face of the project Directs users and developers to important information and resources Using Trac, was able to provide better project resources than SourceForge, but still retained some SourceForge presence for the visibility Soon enough, the E-Mails and Tickets started flowing

LogicMail Case Study Retrospective on the project thus far Plenty of users found it, and my INBOX was overflowing with questions, feature requests, and bug reports Freely flowing suggestions drove my project feature plans Community of real world testers, in many environments and locales Available source code enabled patches and feature requests only possible through code inspection Potential for spin-off projects: Enhanced J2MEUnit test-runner GUI Common UI component library

LogicMail Case Study Lessons learned SourceForge makes for great project visibility, but Trac is a far more powerful project management solution Build environments can be tricky for users to set up, so use a continuous integration build tool to provide the latest software as soon as code is checked in Debugging user issues can be quite the challenge, as they are usually data-dependent Avoiding the restricted APIs becomes increasingly difficult

Code Signing How restricted APIs affects open source What is the situation? Parts of the BlackBerry API require binaries to be digitally signed Commonly desired features cannot be implemented without the using the signed APIs The code signing key costs money There are completely valid reasons for RIM to be doing this The Open Source dilemma: Open source is all about empowering the community Code signing places restrictions on rebuilding and redistributing Casual developers may be deterred by this barrier The rest of us pay the $20 without thinking, and get on with our lives

Open Source Projects for the BlackBerry A survey of what s already out there

For the end-user Barry http://www.netdirect.ca/software/pack ages/barry/ License: GNU GPL BlackBerry desktop synchronization software for Linux LogicMail http://logicmail.sf.net/ License: BSD-style Standalone E-Mail client supporting IMAP, POP, and SMTP directly bbtracker http://www.bbtracker.org/ License: GNU GPL A simple application for Ja va-enabled smartphones to create GPS track logs BerrySpeedy http://sf.net/projects/berryspeedy/ License: BSD-style Adds convenient menu items to the BlackBerry UI BlackBerryTools http://sf.net/projects/blackberrytools/ License: GNU GPL Collection of popular utility applications KeePass http://sf.net/projects/keepassbb/ License: GNU GPL Password database application

For the developer Blackberry Ant Tools http://bb-ant-tools.sf.net/ License: GNU GPL A collection of ant tasks for building BlackBerry applications Antenna http://antenna.sf.net/ License: GNU LGPL A collection of ant tasks for building J2ME applications, including support for the BlackBerry bunit http://sf.net/projects/b-unittesting/ License: Apache License Unit testing framework for RIM Blackberry based on jmunit J2MEUnit http://j2meunit.sf.net/ License: Common Public License Unit testing framework for J2ME applications JMUnit http://jmunit.sf.net/ License: Apache License Unit testing framework for J2ME applications (being merged into J2MEUnit)

For More Information Open Source Initiative http://www.opensource.org/ Free Software Foundation http://www.fsf.org/ SourceForge.Net http://www.sourceforge.net/ Evolution of an Open Source Project The LogicMail Story http://leap-cf.org/presentations/eoss-pres.pdf

Thank You Derek Konigsberg, Software Engineer B10