This document discusses cross-platform mobile development using Xamarin and Visual Studio. Key points include:
- Using C# and .NET with Xamarin allows building iOS, Android, and Windows Phone apps with one shared codebase while still getting native performance and user experience.
- The code compiles to native for each platform, rather than being interpreted, and full access to platform SDKs is provided. Shared code, data layers, and platform abstractions allow code reuse.
- Visual Studio solutions can contain projects for shared code, platform-specific code for each mobile OS, and tests. Linking or portable class libraries are recommended for sharing code.
- Considerations include designing native U
The story behind building application PF2014 based on Cordova with AngularJS, jQuery without Canvas. Short info about app markets like Google Play, Apple App Store, Amazon App Store and Windows Phone store
iFour Technolab is a custom software development and software consulting firm in India which has experienced developers of ASP.Net development to increase their business growth and sustainability for small and large enterprises across the globe. We stand as a technology partner which accelerates client growth by means of providing key technology solutions, based on a variety of industry or domain experiences & operations.
The story behind building application PF2014 based on Cordova with AngularJS, jQuery without Canvas. Short info about app markets like Google Play, Apple App Store, Amazon App Store and Windows Phone store
iFour Technolab is a custom software development and software consulting firm in India which has experienced developers of ASP.Net development to increase their business growth and sustainability for small and large enterprises across the globe. We stand as a technology partner which accelerates client growth by means of providing key technology solutions, based on a variety of industry or domain experiences & operations.
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)ITCamp
Are you a .NET developer interested in crafting high-quality, modern web applications? I've got 30 tools I want to show you in just 60 short minutes. I'll introduce you to these 30 tools that I think will help make your software and life better.
Buckle your seat belts and come prepared to jot down some notes on the items that will be the most helpful to you. You might want to reference them later, because we'll be moving fast!
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
Electron is an open source library developed by GitHub for building cross-platform desktop applications with HTML, CSS, and JavaScript. Electron accomplishes this by combining Chromium and Node.js into a single runtime. Apps can be packaged for Mac, Windows, and Linux.
Demo: https://github.com/bethmi/electron-mysql-demo
지난 7월 29일, 개발자 여러분을 위해 준비한 "Windows 10 앱개발 100분 완성" 라이브 영상으로 Windows 10 UWP (Universal Windows Platform) 부터 IoT Core까지 Windows 10 과 관련된 전반적인 내용은 물론 개발에 필요한 핵심정보들을 전달해드립니다. 실시간으로 진행된 Q&A 와 Windows 10 앱개발 데모까지 On-demand 영상으로 확인하실 수 있습니다.
목차
1. UWP
2. XAML Controls
3. Networking
4. Linq
5. Adaptive UI
6. Data Binding
7. SQLite Local Database
8. Toast
Building a Next Generation Mobile Browser using Web technologiesn_adam_stanley
The BlackBerry 10 browser was created using groundbreaking Web technologies and has opened new doors for even better web experiences. In fact, many building blocks, including the application’s chrome itself, were created using HTML5 and CSS3. In this session we will showcase how the next generation mobile browser was built using the very web technologies it was designed to render.
We will dispel myths that Web technologies can be limiting and explore various lessons learned about optimizing performance. This session will also serve as a preview for next generation Web application technologies, and possibly what BlackBerry WebWorks™ and Apache Cordova may evolve to in the not so distant future.
Ionic adventures - Hybrid Mobile App Development rocksJuarez Filho
Ionic frameworks is the new kid on the block related to Hybrid Mobile Apps created by Drifty and rapidly growth with a variety of tools like ionic lab, ionic creator, ionic view, ionic crosswalk integration and other exciting tools is coming this year like ionic PUSH.
Check this presentation to have a short getting start in this amazing framework.
Let's create amazing apps with Ionic. \o/
Most of the major internet companies have now declared themselves to be mobile first. Smartphones have become ubiquitous throughout the development world. But mobile development is fraught with challenges. There are more Android devices than iOS, but iOS users tend to spend more money. If you build your app for one, it is a complete re-write for the other. You may have heard of Cordova/PhoneGap, but the apps tend to be somewhat clunky looking.
Enter the Ionic Framework, a cross platform framework which combines PhoneGap with AngularJS and super fast CSS3 to make apps which perform at near native levels.
Web technologies such as HTML5, Javascript and CSS3 are emerging as an alternative for mobile application development platform, at the same time allow the user to provide great experiences, and are simple to administer and maintain by IT organizations.
This session will discuss the status of these technologies and their feasibility for the development of mobile applications. We will also address some recommendations and considerations that must be taken to choose a strategy for developing apps based on web technologies.
PhoneGap (aka Cordova) is a cross-platform framework for developing mobile apps using standard web development tools like HTML, CSS, and JavaScript. Join Troy Miles to learn how to create mobile apps with PhoneGap by building a simple but full-featured app during this hands-on class. Troy explores PhoneGap’s important capabilities, including GPS, camera, and audio recordings. Because JavaScript has a reputation as a somewhat difficult language, Troy teaches techniques for keeping your code robust and clean. To give your app the appropriate look and feel for the device on which it is running, the class will use the open source Chocolate Chip UI framework for testing. Troy shares ways to debug the code by running it as a web app, using browser development tools, or as a phone app, using the Chrome browser’s remote debugging features. Leave with the basics you need to start building your own cross-platform mobile apps.
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)ITCamp
Are you a .NET developer interested in crafting high-quality, modern web applications? I've got 30 tools I want to show you in just 60 short minutes. I'll introduce you to these 30 tools that I think will help make your software and life better.
Buckle your seat belts and come prepared to jot down some notes on the items that will be the most helpful to you. You might want to reference them later, because we'll be moving fast!
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
Electron is an open source library developed by GitHub for building cross-platform desktop applications with HTML, CSS, and JavaScript. Electron accomplishes this by combining Chromium and Node.js into a single runtime. Apps can be packaged for Mac, Windows, and Linux.
Demo: https://github.com/bethmi/electron-mysql-demo
지난 7월 29일, 개발자 여러분을 위해 준비한 "Windows 10 앱개발 100분 완성" 라이브 영상으로 Windows 10 UWP (Universal Windows Platform) 부터 IoT Core까지 Windows 10 과 관련된 전반적인 내용은 물론 개발에 필요한 핵심정보들을 전달해드립니다. 실시간으로 진행된 Q&A 와 Windows 10 앱개발 데모까지 On-demand 영상으로 확인하실 수 있습니다.
목차
1. UWP
2. XAML Controls
3. Networking
4. Linq
5. Adaptive UI
6. Data Binding
7. SQLite Local Database
8. Toast
Building a Next Generation Mobile Browser using Web technologiesn_adam_stanley
The BlackBerry 10 browser was created using groundbreaking Web technologies and has opened new doors for even better web experiences. In fact, many building blocks, including the application’s chrome itself, were created using HTML5 and CSS3. In this session we will showcase how the next generation mobile browser was built using the very web technologies it was designed to render.
We will dispel myths that Web technologies can be limiting and explore various lessons learned about optimizing performance. This session will also serve as a preview for next generation Web application technologies, and possibly what BlackBerry WebWorks™ and Apache Cordova may evolve to in the not so distant future.
Ionic adventures - Hybrid Mobile App Development rocksJuarez Filho
Ionic frameworks is the new kid on the block related to Hybrid Mobile Apps created by Drifty and rapidly growth with a variety of tools like ionic lab, ionic creator, ionic view, ionic crosswalk integration and other exciting tools is coming this year like ionic PUSH.
Check this presentation to have a short getting start in this amazing framework.
Let's create amazing apps with Ionic. \o/
Most of the major internet companies have now declared themselves to be mobile first. Smartphones have become ubiquitous throughout the development world. But mobile development is fraught with challenges. There are more Android devices than iOS, but iOS users tend to spend more money. If you build your app for one, it is a complete re-write for the other. You may have heard of Cordova/PhoneGap, but the apps tend to be somewhat clunky looking.
Enter the Ionic Framework, a cross platform framework which combines PhoneGap with AngularJS and super fast CSS3 to make apps which perform at near native levels.
Web technologies such as HTML5, Javascript and CSS3 are emerging as an alternative for mobile application development platform, at the same time allow the user to provide great experiences, and are simple to administer and maintain by IT organizations.
This session will discuss the status of these technologies and their feasibility for the development of mobile applications. We will also address some recommendations and considerations that must be taken to choose a strategy for developing apps based on web technologies.
PhoneGap (aka Cordova) is a cross-platform framework for developing mobile apps using standard web development tools like HTML, CSS, and JavaScript. Join Troy Miles to learn how to create mobile apps with PhoneGap by building a simple but full-featured app during this hands-on class. Troy explores PhoneGap’s important capabilities, including GPS, camera, and audio recordings. Because JavaScript has a reputation as a somewhat difficult language, Troy teaches techniques for keeping your code robust and clean. To give your app the appropriate look and feel for the device on which it is running, the class will use the open source Chocolate Chip UI framework for testing. Troy shares ways to debug the code by running it as a web app, using browser development tools, or as a phone app, using the Chrome browser’s remote debugging features. Leave with the basics you need to start building your own cross-platform mobile apps.
Microsoft Visual Studio 2017 is being launched on March 7. This is the 20th anniversary of Visual Studio! We will host a launch event on April 20th that will focus on some of the new features of Visual Studio 2017 and Mobile development with Xamarin for Visual Studio.
Learn how to develop an AndroidApp from a senior developer — for free! We decided to make one of our “Showmaxers teaching Showmaxers” events public. This one is from our Android developer Michal Ursiny. Check it out.
What you will learn and do:
- Introduction to Android development and what it takes to develop for Android - it’s actually pretty easy to start compared to other mobile platforms
- Java vs Kotlin - you can use both, but we recommend Kotlin
- How to create new project using Android Studio, the official IDE for Android development
- How to choose the appropriate minimum SDK version
- Understanding basic project structure:
sources
resources
AndroidManifest.xml
build.gradle
- You will run the demo project generated by Android Studio and modify it
- The basic building blocks:
Activity
Fragment
View
- How to build basic layouts using resources and themes
- The challenges - lifecycles and why to use viewmodels
- Permissions - how to access REST APIs using Retrofit library and why using third party image libraries is a good idea
Getting started
Download Android Studio - the official IDE based on IntelliJ IDEA. Configure your emulator or enable developer mode on your device and connect to the computer. Get acquainted with Android Studio.
Originally, the sample project used within the tutorial was targeting our internal Showmax Search API. It was changed to use GitHub Users Search API so it’s available and useful for everyone.
On our blog on https://tech.showmax.com/2021/02/android-crashcourse/ you can watch Michal’s easy-to-digest and comprehensive presentation embedded from YouTube.
Or just read the deck and learn the basics.
Try building the app yourself by following the shared sample project: https://github.com/Showmax/GithubUsersSearch
Cross-platform mobile development with Mono (MonoTouch & Mono-for-Android). Presentation from 7th May 2011 at Mobile Camp Oz (Bathurst, NSW, Australia)
4. RTFM, 나는프로그래머다 Meetup 2016 / 한국마이크로소프트 김명신 기술 에반젤리스트 양 한빛
Welcome to the Microsoft madness / 한국마이크로소프트 김명신 기술 에반젤리스트
[발표개요]
지난 수년간 마이크로소프트의 변화의 속도는 실로 폭주라는 말이 가장 적합할 만큼 파격적이며 혁신적입니다. 본 세션에서는 2016년 하반기에 가장 Hot! 할 것 같은 기술을 중심으로 마이크로소프트의 놀라운 변화를 공유할 것입니다. 주요 주제로 차기 버전의 윈도우에 탑재될 Bash, 윈도우/안드로이드/iOS를 가리지 않는 Xamarin 개발 도구, Cross Platform 웹 개발 플랫폼인 ASP.NET Core, 마이크로소프트 AI 기술의 대표주자인 Cognitive Service를 데모를 통해 속도감 있게 알아봅니다. 멀미 주의!
[발표자 소개]
한국마이크로소프트 기술 에반젤리스트로, 아태지역과 글로벌 핵심 개발자 지원팀의 수석 엔지니어와 고객기술지원부 전략 참모직을 역임했다.
NHN과 STI에서 아키텍트 역할을 하였으며, C/C++와 C# 부문에서 마이크로소프트 MVP로 활약했다. Small Basic, KPL, Scratch 등 어린이 교육용 프로그래밍 언어에도 관심이 많아서 KPL의 한글화 작업을 수행하기도 하였다.
분산컴퓨팅 아키텍처, 네트워킹, 프로그래밍 방법론, 소프트웨어 공학 등에 두루 관심이 많으며 여전히 Apple과 MSX Emulator를 띄우고 추억에 잠기곤 하는 전형적인 8bits kid이다.
Cross platform mobile app development tools reviewUday Kothari
Presentation to discuss various Cross Platform Mobile Apps development tools. Rhodes, PhoneGap, Appcelerator, Sencha Touch, Xamarin, MoSync SDK and MoSync Reload.
Cross Compilation, VM, Mobile Web. Join our Meetup group for meeting great app developers, entrepreneurs, startups, students in Pune (Pune Mobile Apps Developers Meetup)
This presentation was used during a lecture I delivered in Hive Pilani 2015 on Firefox OS and Firefox OS App Development for newbies.
The presentation aims to educate the audience enough to smooth the move to actual Firefox OS Development. The presentation therefore covers topics such as - Architecture, Bootstrap Process, Layer View of the OS etc.
Tutorial: Develop Mobile Applications with AngularJSPhilipp Burgmer
Slides for my tutorial at Karlsruher Entwicklertag 2014.
Visit us at http://www.thecodecampus.de
Folien zu meinem Tutorial beim Karlsruher Entwicklertag 2014.
AngularJS hat sich in den letzen 2 Jahren von einem vielversprechendem zu einem viel eingesetzten JavaScript MVC Framework entwickelt, das immer mehr an Aufmerksamkeit und Zulauf gewinnen kann. Es gibt zahlreiche kleine und auch einige große Anwendungen im Netz die auf AngularJS basieren und viele davon sind "mobile ready".
Doch ist AngularJS auch eine gute Wahl um nicht nur "mobile ready" Web-Anwendungen sonder native mobile Anwendungen zu entwickeln?
In diesem Tutorial wird anhand von Beispielen gezeigt wie AngularJS z.B. zusammen mit PhoneGap eingesetzt werden kann um native Anwendungen für diverse mobile Platformen mit modernen Web-Technologien zu entwickeln.
Hardware hackers - hacking appliances with netduino + xamarinbryan costanich
Get inspired to build your own connected things as I walk through hacking household appliances into connected things that you can control with your phone using Netduino and Xamarin. Come learn how Netudino.Foundation (http://Netduino.Foundation) makes creating connected things in C# a piece of cake, with a massive library of peripheral drivers for sensors, LCDs, etc., and a handrolled API that makes building smart hardware a plug and play experience.
Teardown Conference: hacking appliances with netduino + xamarinbryan costanich
Video here: https://archive.org/details/teardown_portland_2018-Hacking_Appliances_and_Prototyping_Nextgeneration_Technology_and_Netduino_and
The hardware revolution is just beginning! There is a whole class of products out there that haven’t been created yet, but if you can develop apps, you can build them!
Join Bryan Costanich (former VP at Xamarin) and get inspired to build your own connected things as he walks through hacking various appliances including a dehydrator, coffee maker and otherinto connected things using Netduino and Xamarin. Come learn how Netudino.Foundation (http://Netduino.Foundation) makes creating connected things in C# a piece of cake, with a massive library of peripheral drivers for sensors, LCDs, etc., and a handrolled API that makes them a piece of cake to use. Come and see how easy it is to create awesome connected things with it!
Hacking your coffee maker; building a connected appliance with Netduino and X...bryan costanich
Netduino is back! Watch Bryan Costanich (formerly of Xamarin) as he walks through hacking a coffee maker into a connected appliance using Netduino and Xamarin. Netduino, recently acquired and relaunched by Wilderness Labs (www.wildernesslabs.co) is getting a new life as a brain for connected things developers that want to be able to use .NET to build connected IOT hardware.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
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!
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.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
5. One Language +
C#
Framework
LINQ
Lambdas
Task Parallel Library (TPL)
Compile-Time Checks
Garbage Collection
º
6. Native Perf. + UX
Compiles Down to Native Code
Not Interpreted
All Native UX Controls
Full Platform SDK Access
iOS: Selectors/Obj-C Runtime
Android: JNI
Fast Enough for Games
º
7. Reuse Story
C# Libraries
Obj-C Bindings + Binding Projects
.jar Bindings + Binding Projects
C via pInvoke
C++ via Cxxi
º
11. Design Platform-Specific UX
UX in iOS != Android != Windows
Phone
UX Metaphors are Different:
Navigation Controller vs. Back
Button
Write-Once, Run-Anywhere is
Problematic
Users Expect Native UX
º
16. Code Sharing - Linking vs. PCL
Portal Library Projects - Take a Lot of Work
Great Discussion Here:
http://forums.xamarin.com/discussion/28/challenges-thoughts-loves/p1
Takeaway:
PCL is clean, but difficult to implement
Linking is less “clean” but simpler
Our Recommendation Now: File Linking for Most Projects
Walkthrough Here: Linking
º
17. WP7 + Android
New Blank Solution: "[AppName]"
New C# Lib Project: "[AppName].Core"
Test Project: “[AppName].Core.Tests”
New Mono for Android Project: “[AppName].Droid”
New WP7 Project "[AppName].WP7"
º
18. iOS - Visual Studio 2012
VS MonoTouch Plugin:
https://github.com/ste8/VSMonoTouch
Visual Studio SDK (to build plugin):
http://msdn.microsoft.com/en-us/library/bb166441(v=vs.80).aspx
iOS - Visual Studio 2010
VS MonoTouch Plugin:
https://github.com/follesoe/VSMonoTouch
º
19. .csproj edit:
iOS - Plugin Config <ItemGroup> <Reference
Include="mscorlib" />
Create iOS Project (on Mac): "[AppName].iOS"<Reference
Copy to Solution Directory or Synch in Source Include="monotouch" />
Manually Edit iOS .csproj File, add Refs -> <Reference
Include="System" />
Remove CoreLib Reference -> <Reference
Include="System.Xml" />
Limitations: Can Build, but No Designer, or <Reference
Deployment Include="System.Core" />
(must use Mac for now**) </ItemGroup>
º
20. Shared Code Linking
Two Linking Options: Auto or Manual
Auto: Use Project Linker VS Add-In
Add a project link, voila. (2010 + 2012)
Manual: Link Files
Add Files as Links
º
21. Shared Data +
Data Access
Layer
Data Access
Layer
SQLite on iOS + Android, C# SQLIte on WP7:
http://code.google.com/p/csharp-sqlite/
SQLite.NET ORM
Use Generics for CRUD Convenience Methods:
TaskDatabase.cs
º
Fast Enough for Games Native UX means that apps look like they belong Full platform SDK Access means that anything you can do in Obj-C on iOS or Java in Android, you can do here. Animation libraries, Media libraries, etc.
Need better graphic for this.
Need Visual Studio Screenshot
A good layered architecture allows for proper separation of responsibility and encapsulation, providing isolation to allow for code changes and maximizing code sharing between platforms. It also provides a pattern-agnostic framework so you can pick and choose which patterns you want to use, and then be flexible to changing them later on. And this is very simple to do. We’ll see later on how to accomplish this with proper namespacing and project setup.
Xamarin supports portable library projects, but they pose practical problems in real-world scenarios because of dependencies. it eliminates the ability to use ifDefs, so you have to do massive architectural refactoring, use the provider/simple dependency pattern, etc. to solve even minor things. Best way, instead is to link your code.
Don’t use .Android - the namespace will cause you hell
Download install, and configure the plugin as state on the git page. Must create the initial MonoTouch application on a mac. Copy it over to your VS machine, into your project. or just synchronize in your source control. Edit the <ItemGroup> that has the “System” entry to include the mscorlib and monotouch items Finally, remove the mscorlib.dll reference in project settings : build : advanced.
Download install, and configure the plugin as state on the git page. Must create the initial MonoTouch application on a mac. Copy it over to your VS machine, into your project. or just synchronize in your source control. Edit the <ItemGroup> that has the “System” entry to include the mscorlib and monotouch items Finally, remove the mscorlib.dll reference in project settings : build : advanced.
Xamarin supports portable library projects, but they pose practical problems in real-world scenarios because of dependencies. it eliminates the ability to use ifDefs, so you have to do massive architectural refactoring, use the provider/simple dependency pattern, etc. to solve even minor things. Best way, instead is to link your code. There are two ways to do this. The magical way, or the manual way. Automatic linking is done fia the Project Linker VS Add-in. Manual is just plain old file links - your only option in MD. Simply add a project link to the corelib, and when you add/remove classes there, they’ll show up in your app projects. if you put your classes in folders, they’ll link nicely into your apps. The manual way is to simply add existing files and make sure they’re added as links.
You can use SQLite on all three mobile platforms, iOS, Android, and WP7. on iOS and Android, SQLite is bundled with it, and on Windows Phone, you can use the open source C# port. We’ll show later how to easily support this cross platform with the same exact API. Additionally, we recommend SQLite.NET ORM for easy data access. For Data Access, we’ve added some nice convenience methods in TaskDatabase.cs that make the basic CRUD operations a snap with zero code.
Platforms are different. pInvoke is available on iOS and Android, not on WP. SQLite is native on Android and iOS, on WP you have to use the C# lib. Devices also have different features. Cameras are different on nearly every single android device out there. Some devices have location features, some don’t. Some vary, etc.
There are predefined symbols that allow you to use different code, depending on the platform you’re building for. Additionally, you can define your own symbols in Build Settings. Demo of this in use can be found here: TaskyPro :: CoreLib.DataLayer/SQLite.cs
ITask - Interface TaskBase - Task class DialogTask - with MT.D annotations