Skip to main content
Apress

Learn BlackBerry 10 App Development

A Cascades-Driven Approach

  • Book
  • Open Access
  • © 2014

You have full access to this open access Book

Overview

  • Learn how to leverage the Black.
  • Berry 10 Cascades framework to create rich native applications.
  • Berry 10 App Development gives you a solid foundation for creating Black.
  • Berry 10 apps efficiently.

Buy print copy

Softcover Book USD 39.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

') var buybox = document.querySelector("[data-id=id_"+ timestamp +"]").parentNode var buyboxMaxSingleColumnWidth = 480 // springerPlus roll out 10% starts here var springerPlusGroup = setLocalStorageSpringerPlus(); var rollOutSpringerPlus = springerPlusGroup === "B" function setLocalStorageSpringerPlus() { var selectUserKey = "springerPlusRollOut"; var springerPlusGroup = "X"; if (!window.localStorage) return springerPlusGroup; try { var selectUserValue = window.localStorage.getItem(selectUserKey) springerPlusGroup = selectUserValue || randomDistributionSpringerPlus(selectUserKey) } catch (err) { console.log(err) } return springerPlusGroup; } function randomDistributionSpringerPlus(selectUserKey) { var randomGroup = Math.random() < 0.7 ? "A" : "B" window.localStorage.setItem(selectUserKey, randomGroup) return randomGroup } if (rollOutSpringerPlus) { revealSpringerPlus(); } function revealSpringerPlus() { if(buybox) { document.querySelectorAll(".c-springer-plus").forEach(function(node) { node.style.display = "block" }) } } //springerPlus ends here ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(initCollapsibles) function initCollapsibles(buyingOption, index) { var toggle = buyingOption.querySelector(".buying-option-price") buyingOption.classList.remove("expanded") var form = buyingOption.querySelector(".buying-option-form") var priceInfo = buyingOption.querySelector(".price-info") if (toggle && form && priceInfo) { toggle.setAttribute("role", "button") toggle.setAttribute("tabindex", "0") toggle.addEventListener("click", function (event) { var expandedBuyingOptions = buybox.querySelectorAll(".buying-option.expanded") var buyboxWidth = buybox.offsetWidth ;[].slice.call(expandedBuyingOptions).forEach(function(option) { if (buyboxWidth <= buyboxMaxSingleColumnWidth && option != buyingOption) { hideBuyingOption(option) } }) var expanded = toggle.getAttribute("aria-expanded") === "true" || false toggle.setAttribute("aria-expanded", !expanded) form.hidden = expanded if (!expanded) { buyingOption.classList.add("expanded") } else { buyingOption.classList.remove("expanded") } priceInfo.hidden = expanded }, false) } } function hideBuyingOption(buyingOption) { var toggle = buyingOption.querySelector(".buying-option-price") var form = buyingOption.querySelector(".buying-option-form") var priceInfo = buyingOption.querySelector(".price-info") toggle.setAttribute("aria-expanded", false) form.hidden = true buyingOption.classList.remove("expanded") priceInfo.hidden = true } function initKeyControls() { document.addEventListener("keydown", function (event) { if (document.activeElement.classList.contains("buying-option-price") && (event.code === "Space" || event.code === "Enter")) { if (document.activeElement) { event.preventDefault() document.activeElement.click() } } }, false) } function initialStateOpen() { var buyboxWidth = buybox.offsetWidth var narrowBuyboxArea = buyboxWidth <= buyboxMaxSingleColumnWidth var allOptionsInitiallyCollapsed = buybox.className.indexOf("all-options-initially-collapsed") > -1 ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(function (option, index) { var toggle = option.querySelector(".buying-option-price") var form = option.querySelector(".buying-option-form") var priceInfo = option.querySelector(".price-info") if (allOptionsInitiallyCollapsed || narrowBuyboxArea && index > 0) { toggle.setAttribute("aria-expanded", "false") form.hidden = "hidden" priceInfo.hidden = "hidden" } else { toggle.click() } }) } initialStateOpen() if (window.buyboxInitialised) return window.buyboxInitialised = true initKeyControls() })()

About this book

Learn how to leverage the BlackBerry 10 Cascades framework to create rich native applications. Learn BlackBerry 10 App Development gives you a solid foundation for creating BlackBerry 10 apps efficiently. Along the way, you will learn how to use QML and JavaScript for designing your app’s UI, and C++/Qt for the application logic. No prior knowledge of C++ is assumed and the book covers the fundamental aspects of the language for writing BlackBerry 10 apps. Also a particular emphasis is put on how to create a visually enticing user experience with the Cascades framework, which is based on Qt and QML.

Starting with the native SDK configuration and an overview of the Momentics IDE, the book is fast-paced and you will rapidly learn many of the best practices and techniques required for developing beautiful BlackBerry 10 apps.

Learn BlackBerry 10 App Development is written for developers wishing to learn how to write apps for the new BlackBerry10 OS and those interested in porting existing iOS and Android apps to BlackBerry 10 as native applications.

Similar content being viewed by others

Table of contents (11 chapters)

About the author

Anwar Ludin is the founder of RiskCetera.com, a cloud-based market risk analytics platform. He currently uses the Intel compiler tools and performance libraries in order to build a high performance derivatives pricing engine that he intends to open source. Prior to founding RiskCetera, he worked as a software engineer in the financial services sector where he designed derivatives pricing engines. Anwar holds a Masters of Electrical Engineering degree from the Swiss Federal Institute of Technology.

Bibliographic Information

Publish with us

Navigation