This document discusses cross-platform mobile development using Titanium, a framework that allows developers to create native mobile apps using web technologies like JavaScript, HTML, and CSS. It provides an overview of Titanium, comparing native iOS development to developing with Titanium. It also shares the author's experience porting an existing iOS app called iHarmony to Titanium, noting it took only 2 days to fully port the app versus the original 2 weeks of native iOS development.
With localhost, you can write XCUITest without the constraint of shared dependencies. This talk will showcase how you can setup a localhost XCUITest using 4 simple steps. In addition you can also assert outgoing requests and analytic events fired from the app
28th July 2016 iOS Dev Scout Meetup @ Propertyguru
Presentation on
- XCUITest: how to easily setup and run XCUITests
- Gherkin: how to setup Gherkin for your XCUITests
Titanium - Making the most of your single threadRonald Treur
The native app development environments support multiple threads. Titanium however does not (out of the box), it only supports a single thread. In this presentaton, Ronald Treur will shortly explain how threading works and why this knowledge matters. But more important, he will show you how to keep heavy duty processes from blocking others.
With localhost, you can write XCUITest without the constraint of shared dependencies. This talk will showcase how you can setup a localhost XCUITest using 4 simple steps. In addition you can also assert outgoing requests and analytic events fired from the app
28th July 2016 iOS Dev Scout Meetup @ Propertyguru
Presentation on
- XCUITest: how to easily setup and run XCUITests
- Gherkin: how to setup Gherkin for your XCUITests
Titanium - Making the most of your single threadRonald Treur
The native app development environments support multiple threads. Titanium however does not (out of the box), it only supports a single thread. In this presentaton, Ronald Treur will shortly explain how threading works and why this knowledge matters. But more important, he will show you how to keep heavy duty processes from blocking others.
Developing a Tabview in iOS app using Swift as a programming language. Swift is now getting adopted by developer community. Have a look on our presentation ..
Presented on 8/14/2012 at BostonRb. This talk provides a nice intro and overview of what RubyMotion is and whether or not it's worth incorporating into your development toolkit.
We'll look at how the HTML5 and related specifications allow us to develop applications that can survive outside of the web. Browsers now offer us simple storage and more complicated SQL based storage and also full offline support which means we can build our apps to be self sufficient when the user is disconnected. This talk will take you through the technology and walk you though some practical code.
Getting started with Appcelerator TitaniumTechday7
Techday7, Cross platform application development using Appcelerator Titanium event's Getting started with Appcelerator Titanium By Naga Harish M, Lead Developer of Anubavam Technologies
Slides for the 1st lecture on mobile development (dedicated to iOS) at the Faculty of Mathematics and Physics at the Charles University in Prague.
Course page: http://www.inmite.eu/en/talks/mff-2012
iPhone development from a Java perspective (Jazoon '09)Netcetera
Based on experience gained in developing the popular Zurich train/tram/bus/ship timeplan transport application, wemlin, senior software engineer Ognen Ivanovski describes development for the iPhone from the perspective of an Enterprise Java developer - covering aspects about differences in the language, the architecture, the user experience, the tools, and the market.
Appcelerator Titanium is a cross-platform development environment where you can build iOS, Android, BlackBerry and Hybrid/HTML5 apps. This talk will discuss how it works, how to get started, code samples and pros/cons from experience.
This presentation is about -
a) Understand the basics of auto Layout
b) Use Auto Layout programmatically
c) Debug Auto Layout
d) Constraints
e) Intrinsic content Size
f) Interface Builder and Constraints
g) Contraint Priorities
h)Constraints in Code
I)Debugging Auto layout
J)Animation Constraints
k)Visual Format Language
Getting Started with XCTest and XCUITest for iOS App TestingBitbar
Watch a live presentation at http://offer.bitbar.com/getting-started-with-xctest-and-xcuitest-for-ios-app-testing
XCTest has been part of Xcode for few years already, but it is finally catching up and more developers are getting on the bandwagon. XCTest and XCUITest provide feature-rich capabilities for iOS developers and test automation folks to implement different levels of tests using Xcode features and supported programming languages, Objective-C and Swift.
Stay tuned and join our upcoming webinars at http://bitbar.com/testing/webinars/
Declaratvie UI is a huge concept, but we can always start small. This is a very brief introduction to declarative UI pattern on iOS, without having SwiftUI.
Developing a Tabview in iOS app using Swift as a programming language. Swift is now getting adopted by developer community. Have a look on our presentation ..
Presented on 8/14/2012 at BostonRb. This talk provides a nice intro and overview of what RubyMotion is and whether or not it's worth incorporating into your development toolkit.
We'll look at how the HTML5 and related specifications allow us to develop applications that can survive outside of the web. Browsers now offer us simple storage and more complicated SQL based storage and also full offline support which means we can build our apps to be self sufficient when the user is disconnected. This talk will take you through the technology and walk you though some practical code.
Getting started with Appcelerator TitaniumTechday7
Techday7, Cross platform application development using Appcelerator Titanium event's Getting started with Appcelerator Titanium By Naga Harish M, Lead Developer of Anubavam Technologies
Slides for the 1st lecture on mobile development (dedicated to iOS) at the Faculty of Mathematics and Physics at the Charles University in Prague.
Course page: http://www.inmite.eu/en/talks/mff-2012
iPhone development from a Java perspective (Jazoon '09)Netcetera
Based on experience gained in developing the popular Zurich train/tram/bus/ship timeplan transport application, wemlin, senior software engineer Ognen Ivanovski describes development for the iPhone from the perspective of an Enterprise Java developer - covering aspects about differences in the language, the architecture, the user experience, the tools, and the market.
Appcelerator Titanium is a cross-platform development environment where you can build iOS, Android, BlackBerry and Hybrid/HTML5 apps. This talk will discuss how it works, how to get started, code samples and pros/cons from experience.
This presentation is about -
a) Understand the basics of auto Layout
b) Use Auto Layout programmatically
c) Debug Auto Layout
d) Constraints
e) Intrinsic content Size
f) Interface Builder and Constraints
g) Contraint Priorities
h)Constraints in Code
I)Debugging Auto layout
J)Animation Constraints
k)Visual Format Language
Getting Started with XCTest and XCUITest for iOS App TestingBitbar
Watch a live presentation at http://offer.bitbar.com/getting-started-with-xctest-and-xcuitest-for-ios-app-testing
XCTest has been part of Xcode for few years already, but it is finally catching up and more developers are getting on the bandwagon. XCTest and XCUITest provide feature-rich capabilities for iOS developers and test automation folks to implement different levels of tests using Xcode features and supported programming languages, Objective-C and Swift.
Stay tuned and join our upcoming webinars at http://bitbar.com/testing/webinars/
Declaratvie UI is a huge concept, but we can always start small. This is a very brief introduction to declarative UI pattern on iOS, without having SwiftUI.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Cross platform mobile development
1. CROSS PLATFORM
MOBILE DEVELOPMENT
Alberto De Bortoli
www.albertodebortoli.it
twitter: @albertodebo
#pip11 meeting, January 21st 2011
www.programmersinpadua.it
2. The purpose
• Write once, run everywhere
• No specific language/API/IDE knowledge
3. Native development
from scratch
•Learn the language
•Learn how tools work
•Learn how to develop
starting from samples
•Learn how to test and deploy
A LOT OF TIME TO GET STARTED!
4. The iPhone (iOS) way to go
•Learn Objective-C
• Getting started with the IDE
(Xcode, Interface Builder, Instruments...)
5. •Look at the samples...
• Get the license and
distribute the apps
(Developer Program,
Developer Portal, iTunes
Connect...)
• Start developing!
7. Titanium
• Create powerful apps with native controls using the Web
technologies you know
• Framework for developing desktop and native mobile applications
• For Windows and Mac
• Mobile developing with JavaScript for Apple App Store & Google
Android Market
8. Titanium Developer
• NO IDE
• NO visual UI editor
• NO Debug tools
doh... but...
• No ‘serious’ memory
management
• No strong typing
• Simple native API use
• ...
10. How to start with Titanium
Read “Getting started with Titanium” 3 hours
Download & Install Titanium 10 mins
Take a glance to Titanium app and set it up 30 mins
Download & Test “Kitchen Sink” app 1 hour
Amaze yourself 2-3 days
Keep studying/testing samples and
...
documentation
12. Objective-C 2/4
// Load DB from file
dbPath = [[NSBundle mainBundle] pathForResource: @"db"
ofType: @"plist"];
myArray = [[NSArray alloc] initWithContentsOfFile: dbPath];!
!
#pragma mark -
#pragma mark Table View data source
// Customize the number of sections in the table view.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [myArray count];
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
! return [[myArray objectAtIndex: section] count];
}
- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section {
! if (section < sectionName.length)
! ! return sectionName[section];
! else
! ! return @"unknown section";
}
13. Objective-C 3/4
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
! UITableViewCell *cell =![tableView dequeueReusableCellWithIdentifier: @"Cell"];
!
! // create a cell
! if (cell == nil) {
cell = [[UITableViewCell alloc]
best practice...
initWithStyle: UITableViewCellStyleSubtitle
reuseIdentifier: @"Cell"];
! }
! // determine the correct row.
! // it will be restarted from 0 every time, and as
! // we're just loading in from one array, we need to
// offset it by the right amount depending on the section.
!
cell.textLabel.text = [[[myArray objectAtIndex: indexPath.section]
objectAtIndex: indexPath.row]
objectForKey: @"title"];
cell.detailTextLabel.font = [UIFont systemFontOfSize: 11];
cell.detailTextLabel.text = [[[myArray objectAtIndex: indexPath.section]
objectAtIndex: indexPath.row]
objectForKey: @"subtitle"];
! cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
!
! // return it
! return cell;
}
14. Objective-C 4/4
#pragma mark -
#pragma mark Table View delegate
//returns floating point which will be used for a cell row height at specified row index
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 46.0;
}
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
!
// Navigation logic may go here -- for example, create and push another view controller.
! myDetailViewController *myDetail = [[myDetailViewController alloc]
initWithNibName: @"myDetailView"
bundle:nil];
!
// passing the right kid of scale (NSDictionary)
myDetail.scale = [[myArray objectAtIndex: indexPath.section]
objectAtIndex: indexPath.row];
iHarmonyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.myNavigationController pushViewController: myDetail
animated: YES];
!
! [myDetail release];
}
15. Javascript 1/2
// get the JSON file
var file = Ti.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory,
'ext/database/notes.js');
var listArray = JSON.parse(file.read().text);
// the data to load in the tableView
var data = [];
// create table view
var tableView = Titanium.UI.createTableView({
style: Titanium.UI.iPhone.TableViewStyle.GROUPED
});
/* LOAD DATA */
the core, next slide
tableView.setData(data);
16. Javascript 2/2
/* BEGIN - loading data for TableView */
// create first section
if (listArray[0] != null) {
! var section = Ti.UI.createTableViewSection();
!!!
! section.headerTitle = listArray[0].group;
}
// update section name tracking variable
var sectionTitle = listArray[0].group;
for (var i=0; i<listArray.length; i++) {
!
! // if the group is changed
! if (sectionTitle != listArray[i].group) {
! ! // apply rows to data array
! ! data.push(section);
! ! // create new section
! ! var section = Ti.UI.createTableViewSection();
! ! section.headerTitle = listArray[i].group;
! ! // update section name tracking variable
! ! sectionTitle = listArray[i].group;
! }
! var row = Ti.UI.createTableViewRow({
! hasChild: true,
! title: listArray[i].info
! });!
! section.add(row);
}
// push the last section
data.push(section);
/* END - loading data for TableView */
18. iHarmony Titanium porting
• My first simple app (back to 2008)
• Musical app about musical harmony, chords, scales...
• One of the first 5.000 apps on the App Store
• Developed in Xcode
(2 weeks, September 2008-June 2010)
1.0 1.1 1.2 2.0
• Developed using Titanium
(2 days for full porting, January 2011,
not yet on any market)