The Year of Xamarin.Forms

Total Page:16

File Type:pdf, Size:1020Kb

The Year of Xamarin.Forms The Year of Xamarin.Forms Aleksander Piotrowski @pelotasplus Agenda 1. What platform needs … to be a rockstar platform 2. And then ... Microsoft happened 3. What’s the difference between Xamarin and Xamarin.Forms 4. What Xamarin.Forms … cannot do (easily) 5. What Xamarin.Forms … can do 6. Apps using Xamarin(.Forms) What platform needs … to be a rockstar platform Programing Language IDE Blogs/podcasts Jake Wharton Visionary Documentation Testing tools/services Emulator Events Third-party components Library Programing Language C# F# XAML IDE IDE Jake Wharton ● Paul C Betts ○ ModernHttpClient ○ refit ○ OkHttp for Xamarin ● James Montemagno ○ MeetupManager ○ Connectivity Plugin for Xamarin ■ ~340k downloads ○ podcasts, blog posts, youtube videos Blogs/podcasts ● Fragmented Merge Conflict ● Android Developers Backstage Xamarin Podcast ● Channel 9 ● .NET rocks! ● Xamarin University paid ● blog.xamarin.com ● hardcore .Net fans also blogging about Xamarin Visionary ● never received a degree ● free software developer since 1992 ● Midnight Commander ● early Wine contributor ● worked on Linux Sun SPARC ● later on Linux for SGI Indy ● almost ported Internet Explorer to SPARC ● started GNOME project and created Gnumeric ● started Mono project to implement .NET on Linux ● Xamarin so Mono on mobile* ● Microsoft, Visual Studio for Mac, reboot mobile for Microsoft Documentation ● for all targeted platforms ● Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Xamarin.everything ● Android developer could learn iOS app architecture ● explains not only C# or Xamarin-related aspects but also basics of all the platforms ● https://developer.xamarin.com/guides/android/user_interface/ ● https://developer.xamarin.com/guides/ios/user_interface/introduction_to_storyboards/ ○ 27 pages long PDF ○ detailed description of what Storyboards really are Emulator ● Xamarin Android Player ● Visual Studio Emulator for Android ○ more or less Genymotion equivalent ● Remoted iOS Simulator ○ for Windows ○ for Visual Studio ○ enterprise edition ○ a Mac is needed for that Testing tools/services ● JUnit NUnit ● Calabash ● UITest for Xamarin ○ Xamarin Test Recorder ● run on thousands of real devices w/ Xamarin Test Cloud ● with Visual Studio Mobile Center also available for !Xamarin apps ○ Espresso ○ Appium ○ coming soon UWP source: https://xamarin.com/test-cloud Events ● Google I/O Xamarin Evolve ○ and yes, it’s expensive ● Microsoft Connect ○ all things Microsoft ○ with Xamarin on a prominent place ● lot’s of local meetups all the time ○ Xamarin Dev Days ○ .NET (junior) meetups Third-party components Library ● Json.NET - GSON for all platforms ○ 54,831,282 total downloads ○ 23,902 avg downloads / day Third-party components Library RESTful API ● Json.NET - GSON for all platforms ● refit - retrofit for all platforms ○ Xamarin.Android AFNetworking OkHttp ○ Xamarin.Mac ○ Xamarin.iOS 64-bit (Unified API) network service ○ Desktop .NET 4.5 in our app ○ Windows Store 8.1+ ○ Windows Phone 8.1 Universal Apps manually Gson as a dict ○ .NET Core data model Third-party components Library ● Json.NET - GSON for all platforms ● refit - retrofit for all platforms ● SVProgressHUD ○ 9,564 stars ○ 2,079 forks Third-party components Library ● Json.NET - GSON for all platforms ● refit - retrofit for all platforms ● SVProgressHUD ● everything is available from Android or iOS worlds Third-party components Library ● Json.NET - GSON for all platforms ● refit - retrofit for all platforms ● SVProgressHUD ● everything is available from Android or iOS worlds ● Components for Xamarin ○ Android Support Libraries ○ Facebook SDK ● Plugins for Xamarin ○ Battery Status ○ Connectivity - 369,811 downloads ● 6 different parse.com bindings Programing Language IDE Blogs/podcasts Jake Wharton Visionary Documentation Testing tools/services Emulator Events Third-party components Library And then … Microsoft happend And then … Microsoft happend 1. not making it Windows-only! ○ Windows ■ IDEs ■ all .NET ■ Xamarin ○ Mac ■ IDEs ■ .NET core ■ Xamarin ○ Linux ■ some IDEs ■ .NET core ■ Xamarin And then … Microsoft happend 1. not making it Windows-only! 2. Visual Studio Code for Mac ○ premier developer product ○ based on Xamarin Studio, so… ○ … 100% mac look and feel ○ not all “workloads” supported though And then … Microsoft happend 1. not making it Windows-only! 2. Visual Studio Code for Mac 3. making it free* ○ for small companies, or ○ devs working for small companies ○ not only Xamarin but also Visual Studio community edition And then … Microsoft happend 1. not making it Windows-only! 2. Visual Studio Code for Mac 3. making it free* 4. going open-source ○ all code on GitHub ○ not dumped there from time to time, but ○ developed in public ○ feature branches, PRs, issues ○ soon nightly builds from feature branches or PRs And then … Microsoft happend 1. not making it Windows-only! 2. Visual Studio Code for Mac 3. making it free* 4. going open-source 5. clear vision ○ public roadmap ■ macOS supported in Xamarin.Forms 2.5.0 to be released Q3 2017 ○ Xamarin.Forms Evolution ■ a forum ■ discuss new features ■ ends up with rejection, or … ■ … someone from Microsoft or community implements particular feature! https://github.com/xamarin/Xamarin.Forms/pull/746 What’s the difference between Xamarin and Xamarin.Forms Application layer (platform specific) User interface layer Service access layer Service access layer (REST) (JSON) Business Logic Business Logic (data model) (itself) Data layer (SQLite) Data access layer (CRUD) “With language advantages of C# and run-time advantages one can even create applications that are faster than apps created in native languages” - Chris Van Wyk, Xamarin University mobile expert “Xamarin leverages JIT compilation, just Java Android application, to create optimized executable on executing device” - Judy McNeil, Xamarin University mobile expert Fat binary vs slim debug build ● Hello world + Base Class Library: 15.8MB ● Hello world + BCL after Linking: 2.9MB ● Linking results in a package that is 30% the size of the original source: used to be here http://developer.xamarin.com/guides/android/advanced_topics/linking/ Application layer (platform specific) User interface layer Service access layer Service access layer (REST) (JSON) Business Logic Business Logic (data model) (itself) Data layer (SQLite) Data access layer (CRUD) Application layer (platform specific) User interface layer (platform specific) Xamarin.Forms Xamarin.Forms Service access layer Service access layer (REST) (JSON) Business Logic Business Logic (data model) (itself) Data layer (SQLite) Data access layer (CRUD) What Xamarin.Forms … can do 1. Multiplatform ● iOS ● Android ● Windows ○ Windows Phone 8.X ○ UWP (Windows 10) ● Tizen ○ Samsung phones ○ and TVs ● Mac ○ Q3 2017, now in beta 2. Rich set of predefined UI elements ● Pages ● Layouts ● Controls ● … all mapped at run-time to platform-specific native UI elements source: https://xamarin.com/forms source: https://xamarin.com/forms 3. Create UI in XAML <?xml version="1.0" encoding="UTF-8"?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.MainPage"> <TabbedPage.Children> <ContentPage Title="Profile" Icon="Profile.png"> <StackLayout Spacing="20" Padding="20" VerticalOptions="Center"> <Entry Placeholder="Username" Text="{Binding Username}"/> <Entry Placeholder="Password" Text="{Binding Password}" IsPassword="true"/> <Button Text="Login" TextColor="White" BackgroundColor="#77D065" Command="{Binding LoginCommand}"/> </StackLayout> </ContentPage> <ContentPage Title="Settings" Icon="Settings.png"> <!-- Settings --> </ContentPage> </TabbedPage.Children> </TabbedPage> … or in C# code using Xamarin.Forms; var profilePage = new ContentPage { Title = "Profile", Icon = "Profile.png", Content = new StackLayout { Spacing = 20, Padding = 50, VerticalOptions = LayoutOptions.Center, Children = { new Entry { Placeholder = "Username" }, new Entry { Placeholder = "Password", IsPassword = true }, new Button { Text = "Login", TextColor = Color.White, BackgroundColor = Color.FromHex("77D065") }}} }; var settingsPage = new ContentPage { Title = "Settings", Icon = "Settings.png", (...) }; var mainPage = new TabbedPage { Children = { profilePage, settingsPage } }; 4. Built-in dependency injection ● use platform-specific code from shared code ● in four easy steps ○ provide an interface ○ provide platform-specific implementations ○ register, and ○ … use public interface ITextToSpeech { void Speak (string text); } public class TextToSpeechImplementation : Java.Lang.Object, ITextToSpeech, TextToSpeech.IOnInitListener { TextToSpeech speaker; string toSpeak; public TextToSpeechImplementation () {} public void Speak (string text) { toSpeak = text; if (speaker == null) { speaker = new TextToSpeech (Forms.Context, this); } else { var p = new Dictionary<string,string> (); speaker.Speak (toSpeak, QueueMode.Flush, p); } } #region IOnInitListener implementation public void OnInit (OperationResult status) { if (status.Equals (OperationResult.Success)) { var p = new Dictionary<string,string> (); speaker.Speak (toSpeak, QueueMode.Flush, p); } } #endregion } using Android.Speech.Tts; [...] using MyNamespace.Droid; [assembly: Xamarin.Forms.Dependency (typeof (TextToSpeechImplementation))] namespace MyNamespace.Droid { public class TextToSpeechImplementation : Java.Lang.Object, ITextToSpeech, TextToSpeech.IOnInitListener { TextToSpeech speaker; string toSpeak; [...] public void Speak (string text) { [...] } [...] } } [...] button.Clicked += (sender,
Recommended publications
  • AAS Worldwide Telescope: Seamless, Cross-Platform Data Visualization Engine for Astronomy Research, Education, and Democratizing Data
    AAS WorldWide Telescope: Seamless, Cross-Platform Data Visualization Engine for Astronomy Research, Education, and Democratizing Data The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citation Rosenfield, Philip, Jonathan Fay, Ronald K Gilchrist, Chenzhou Cui, A. David Weigel, Thomas Robitaille, Oderah Justin Otor, and Alyssa Goodman. 2018. AAS WorldWide Telescope: Seamless, Cross-Platform Data Visualization Engine for Astronomy Research, Education, and Democratizing Data. The Astrophysical Journal: Supplement Series 236, no. 1. Published Version https://iopscience-iop-org.ezp-prod1.hul.harvard.edu/ article/10.3847/1538-4365/aab776 Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:41504669 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Open Access Policy Articles, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#OAP Draft version January 30, 2018 Typeset using LATEX twocolumn style in AASTeX62 AAS WorldWide Telescope: Seamless, Cross-Platform Data Visualization Engine for Astronomy Research, Education, and Democratizing Data Philip Rosenfield,1 Jonathan Fay,1 Ronald K Gilchrist,1 Chenzhou Cui,2 A. David Weigel,3 Thomas Robitaille,4 Oderah Justin Otor,1 and Alyssa Goodman5 1American Astronomical Society 1667 K St NW Suite 800 Washington, DC 20006, USA 2National Astronomical Observatories, Chinese Academy of Sciences 20A Datun Road, Chaoyang District Beijing, 100012, China 3Christenberry Planetarium, Samford University 800 Lakeshore Drive Birmingham, AL 35229, USA 4Aperio Software Ltd. Headingley Enterprise and Arts Centre, Bennett Road Leeds, LS6 3HN, United Kingdom 5Harvard Smithsonian Center for Astrophysics 60 Garden St.
    [Show full text]
  • Dr. C#: a Pedagogic IDE for C# Featuring a Read-Eval-Print-Loop by Dennis Lu
    RICE UNIVERSITY Dr. C#: A Pedagogic IDE for C# Featuring a Read-Eval-Print-Loop by Dennis Lu ATHESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE Master of Science APPROVED,THESIS COMMITTEE: Robert Cartwright, Chair Professor of Computer Science Joe Warren Professor of Computer Science Dan Wallach Assistant Professor of Computer Science Dung X. Nguyen Lecturer, Computer Science Houston, Texas April, 2003 Dr. C#: A Pedagogic IDE for C# Featuring a Read-Eval-Print-Loop Dennis Lu Abstract As the primary programming language of the Microsoft .NET platform, C# will play a significant role in software development for the foreseeable future. As the language rapidly gains popularity in industry, tools made for C# development fo- cus on the professional programmer, while leaving the beginning computer science student behind. To address this problem, we introduce Dr. C#, a simple lightweight develop- ment environment with an integrated, interactive Read-Eval-Print-Loop (REPL). Dr. C# helps flatten the learning curve of both the environment and the language, enabling students to quickly learn key elements of the language and focus more easily on concepts. Dr. C# thus serves not only as a learning tool for beginner students but also as a teaching tool for instructors. The editor is based on an open source IDE called SharpDevelop. This thesis describes the implementation of Dr. C# focusing primarily on building the REPL and integrating with SharpDevelop. Acknowledgments I would like to thank my advisor Professor Robert “Corky” Cartwright for giving me the opportunity and autonomy to develop Dr. C#. I would also like to thank Professor Dung Nguyen for acting as co-advisor and for his years of guidance and support.
    [Show full text]
  • XAMARIN.FORMS for BEGINNERS ABOUT ME Tom Soderling Sr
    XAMARIN.FORMS FOR BEGINNERS ABOUT ME Tom Soderling Sr. Mobile Apps Developer @ Polaris Industries; Ride Command Xamarin.Forms enthusiast DevOps hobbyist & machine learning beginner 4 year XCMD Blog: https://tomsoderling.github.io GitHub: https://github.com/TomSoderling Twitter: @tomsoderling How Deep Pickster Spaniel Is It? THE PLAN • Introduction: Why, What, and When • Overview of Xamarin.Forms Building Blocks • Building a Xamarin.Forms UI in XAML • Data Binding • View Customization • Next Steps & Resources • Please ask any questions that come up! THE PLAN • Introduction: Why, What, and When • Overview of Xamarin.Forms Building Blocks • Building a Xamarin.Forms UI in XAML • Data Binding • View Customization • Next Steps & Resources INTRODUCTION : WHY • WET: the soggy state of mobile app development • Write Everything Twice INTRODUCTION : WHY • WET: the soggy state of mobile app development • Write Everything Twice INTRODUCTION : WHAT • What is Xamarin.Forms? • Cross-platform UI framework • Platforms: • Mobile: iOS 8 and up, Android 4.0.3 (API 15) • Desktop: Windows 10 UWP, MacOS, WFP • Samsung Smart Devices: Tizen INTRODUCTION : WHAT • Brief History: • May 2011, Xamarin founded • MonoTouch and Mono for Android using MonoDevelop IDE • February 2013, release of Xamarin 2.0 • Xamarin Studio IDE & integration with Visual Studio • Renamed to Xamarin.Android and Xamarin.iOS • May 2014, Xamarin.Forms released as part of Xamarin 3 • February 24 2016, Xamarin acquired by Microsoft • Owned, actively developed on, and supported by Microsoft • Free
    [Show full text]
  • Web API and Microsoft Azure
    [ 1 ] www.it-ebooks.info Building Web Services with Microsoft Azure Quickly develop scalable, REST-based applications or services and learn how to manage them using Microsoft Azure Alex Belotserkovskiy Stephen Kaufman Nikhil Sachdeva professional expertise distilled PUBLISHING BIRMINGHAM - MUMBAI www.it-ebooks.info Building Web Services with Microsoft Azure Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: May 2015 Production reference: 1220515 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78439-837-8 www.packtpub.com www.it-ebooks.info Credits Authors Copy Editors Alex Belotserkovskiy Pranjali
    [Show full text]
  • End to End Azure and Xamarin.Forms
    End-to-End Native Mobile Apps with C# and Xamarin James Montemagno Developer Evangelist, Xamarin [email protected] motzcod.es @JamesMontemagno DESIGN – DEVELOP - INTEGRATE TEST MONITOR LEARN iOS C# UI Android C# UI Windows C# UI Shared C# Mobile Shared C# codebase • 100% native API access • High performance Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices System.Net System System.IO System.Linq System.Xml System.Data System.Windows System.Numerics System.Core System.ServiceModel MapKit UIKit iBeacon CoreGraphics CoreMotion System.Net System System.IO System.Linq System.Xml System.Data System.Windows System.Numerics System.Core System.ServiceModel Text-to-speech ActionBar Printing Framework Renderscript NFC System.Net System System.IO System.Linq System.Xml System.Data System.Windows System.Numerics System.Core System.ServiceModel .NET IL + JIT Compile C# and Link .APK Runs Natively Bindings Xamarin.iOS does full Ahead Of Time Xamarin.Android takes advantage of (AOT) compilation to produce an ARM Just In Time (JIT) compilation on the binary for Apple’s App Store. Android device. • • • • • ✓Always Up-to-Date • • • • • • iOS C# UI Android C# UI Windows C# UI Shared UI Code Shared C# Backend Shared C# Backend Traditional Xamarin With Xamarin.Forms: Approach More code-sharing, all native ✓ 40+ Pages, layouts, and controls (Build from code behind or XAML) Shared UI Code ✓ Two-way data binding ✓ Navigation Shared C# Backend ✓ Animation API ✓ Dependency Service ✓ Messaging Center Pages Content MasterDetail
    [Show full text]
  • Microsoft Mobility and Security for Enterprise Architects
    Microsoft Mobility What IT architects need to know about mobility with Microsoft cloud services and Security for and platforms Enterprise Architects This topic is 1 of 4 in a series 1 2 3 4 Enable productivity and collaboration from anywhere while protecting data and applications Microsoft provides broad support for mobile productivity with support for applications and rich features for controlling access to your organization s assets. Microsoft mobile apps for business Developing your own mobile apps Microsoft produces a number of business class mobile apps for Use the Mobile Apps feature of Azure App Service to build engaging productivity. See page two for featured applications. iOS, Android, and Windows apps or cross-platform Xamarin or Cordova (Phonegap) apps for your customers and business. With an Office 365 for business subscription, you get mobile apps that help you get more done from your favorite device while keeping your Broadcast push with customer data secured. Use Intune Mobile Application Management to apply segmentation additional security when using these mobile applications. Enterprise single sign-on with Active Directory Autoscale to support millions of devices Skype for Business, Yammer, OneNote, and more apps for business Apps can work offline and sync are also available. Get the full list of apps and learn how to set them Social integration with Facebook, up on your devices. Twitter, Google Dynamics CRM also includes apps for phones and tablets. Cloud App Security for SaaS apps Mobile access to on-prem applications Microsoft Cloud App Security is a comprehensive service that provides Microsoft Azure Active Directory Application Proxy lets you publish deeper visibility, comprehensive controls, and improved protection for applications, such as web-based apps inside your private network and your cloud applications.
    [Show full text]
  • Licensing Information User Manual Release 9.1 F13415-01
    Oracle® Hospitality Cruise Fleet Management Licensing Information User Manual Release 9.1 F13415-01 August 2019 LICENSING INFORMATION USER MANUAL Oracle® Hospitality Fleet Management Licensing Information User Manual Version 9.1 Copyright © 2004, 2019, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error- free. If you find any errors, please report them to us in writing. If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Seeing the Sky Visualization & Astronomers
    Seeing the Sky Visualization & Astronomers Alyssa A. Goodman Harvard Smithsonian Center for Astrophysics & Radcliffe Institute for Advanced Study @aagie WorldWide Telescope Gm1m2 F= gluemultidimensional data exploration R2 Cognition “Paper of the Future” Language* Data Pictures Communication *“Language” includes words & math Why Galileo is my Hero Explore-Explain-Explore Notes for & re-productions of Siderius Nuncius 1610 WorldWide Telescope Galileo’s New Order, A WorldWide Telescope Tour by Goodman, Wong & Udomprasert 2010 WWT Software Wong (inventor, MS Research), Fay (architect, MS Reseearch), et al., now open source, hosted by AAS, Phil Rosenfield, Director see wwtambassadors.org for more on WWT Outreach WorldWide Telescope Galileo’s New Order, A WorldWide Telescope Tour by Goodman, Wong & Udomprasert 2010 WWT Software Wong (inventor, MS Research), Fay (architect, MS Reseearch), et al., now open source, hosted by AAS, Phil Rosenfield, Director see wwtambassadors.org for more on WWT Outreach Cognition “Paper of the Future” Language* Data Pictures Communication *“Language” includes words & math enabled by d3.js (javascript) outputs d3po Cognition Communication [demo] [video] Many thanks to Alberto Pepe, Josh Peek, Chris Beaumont, Tom Robitaille, Adrian Price-Whelan, Elizabeth Newton, Michelle Borkin & Matteo Cantiello for making this posible. 1610 4 Centuries from Galileo to Galileo 1665 1895 2009 2015 WorldWide Telescope Gm1m2 F= gluemultidimensional data exploration R2 WorldWide Telescope gluemultidimensional data exploration WorldWide Telescope gluemultidimensional data exploration Data, Dimensions, Display 1D: Columns = “Spectra”, “SEDs” or “Time Series” 2D: Faces or Slices = “Images” 3D: Volumes = “3D Renderings”, “2D Movies” 4D:4D Time Series of Volumes = “3D Movies” Data, Dimensions, Display Spectral Line Observations Loss of 1 dimension Mountain Range No loss of information Data, Dimensions, Display mm peak (Enoch et al.
    [Show full text]
  • Software License Agreement (EULA)
    Third-party Computer Software AutoVu™ ALPR cameras • angular-animate (https://docs.angularjs.org/api/ngAnimate) licensed under the terms of the MIT License (https://github.com/angular/angular.js/blob/master/LICENSE). © 2010-2016 Google, Inc. http://angularjs.org • angular-base64 (https://github.com/ninjatronic/angular-base64) licensed under the terms of the MIT License (https://github.com/ninjatronic/angular-base64/blob/master/LICENSE). © 2010 Nick Galbreath © 2013 Pete Martin • angular-translate (https://github.com/angular-translate/angular-translate) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • angular-translate-handler-log (https://github.com/angular-translate/bower-angular-translate-handler-log) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • angular-translate-loader-static-files (https://github.com/angular-translate/bower-angular-translate-loader-static-files) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • Angular Google Maps (http://angular-ui.github.io/angular-google-maps/#!/) licensed under the terms of the MIT License (https://opensource.org/licenses/MIT). © 2013-2016 angular-google-maps • AngularJS (http://angularjs.org/) licensed under the terms of the MIT License (https://github.com/angular/angular.js/blob/master/LICENSE). © 2010-2016 Google, Inc. http://angularjs.org • AngularUI Bootstrap (http://angular-ui.github.io/bootstrap/) licensed under the terms of the MIT License (https://github.com/angular- ui/bootstrap/blob/master/LICENSE).
    [Show full text]
  • How Github Secures Open Source Software
    How GitHub secures open source software Learn how GitHub works to protect you as you use, contribute to, and build on open source. HOW GITHUB SECURES OPEN SOURCE SOFTWARE PAGE — 1 That’s why we’ve built tools and processes that allow GitHub’s role in securing organizations and open source maintainers to code securely throughout the entire software development open source software lifecycle. Taking security and shifting it to the left allows organizations and projects to prevent errors and failures Open source software is everywhere, before a security incident happens. powering the languages, frameworks, and GitHub works hard to secure our community and applications your team uses every day. the open source software you use, build on, and contribute to. Through features, services, and security A study conducted by the Synopsys Center for Open initiatives, we provide the millions of open source Source Research and Innovation found that enterprise projects on GitHub—and the businesses that rely on software is now comprised of more than 90 percent them—with best practices to learn and leverage across open source code—and businesses are taking notice. their workflows. The State of Enterprise Open Source study by Red Hat confirmed that “95 percent of respondents say open source is strategically important” for organizations. Making code widely available has changed how Making open source software is built, with more reuse of code and complex more secure dependencies—but not without introducing security and compliance concerns. Open source projects, like all software, can have vulnerabilities. They can even be GitHub Advisory Database, vulnerable the target of malicious actors who may try to use open dependency alerts, and Dependabot source code to introduce vulnerabilities downstream, attacking the software supply chain.
    [Show full text]
  • Introduction to Unit Testing
    INTRODUCTION TO UNIT TESTING In C#, you can think of a unit as a method. You thus write a unit test by writing something that tests a method. For example, let’s say that we had the aforementioned Calculator class and that it contained an Add(int, int) method. Let’s say that you want to write some code to test that method. public class CalculatorTester { public void TestAdd() { var calculator = new Calculator(); if (calculator.Add(2, 2) == 4) Console.WriteLine("Success"); else Console.WriteLine("Failure"); } } Let’s take a look now at what some code written for an actual unit test framework (MS Test) looks like. [TestClass] public class CalculatorTests { [TestMethod] public void TestMethod1() { var calculator = new Calculator(); Assert.AreEqual(4, calculator.Add(2, 2)); } } Notice the attributes, TestClass and TestMethod. Those exist simply to tell the unit test framework to pay attention to them when executing the unit test suite. When you want to get results, you invoke the unit test runner, and it executes all methods decorated like this, compiling the results into a visually pleasing report that you can view. Let’s take a look at your top 3 unit test framework options for C#. MSTest/Visual Studio MSTest was actually the name of a command line tool for executing tests, MSTest ships with Visual Studio, so you have it right out of the box, in your IDE, without doing anything. With MSTest, getting that setup is as easy as File->New Project. Then, when you write a test, you can right click on it and execute, having your result displayed in the IDE One of the most frequent knocks on MSTest is that of performance.
    [Show full text]
  • Introducing Xuni & Xamarin.Forms
    INTRODUCING XUNI & XAMARIN.FORMS Hosted by Greg Lutz, Kelley Ricker & Ross Dederer OVERVIEW .Brief background on mobile development .Introduction to Xamarin.Forms .Introduction to Xuni .Hands-on building a mobile app with Xamarin.Forms .Adding data visualization controls to an app using Xuni .Questions & Survey This web cast will be recorded and available to watch again at any time. MOBILE DEVELOPMENT .Consumers and businesses alike are all going mobile .Bring Your Own Device (BYOD) is a common practice for businesses whose enterprise apps work on a variety of different devices .For mobile app development we have two choices, each with pros and cons: . Web . Native MOBILE WEB APPS .Mobile Web sites or Web Apps made to look and feel native (Hybrid Apps) .Tools like PhoneGap and Ionic help produce Hybrid apps .Written with JavaScript and HTML on client-side .Reach ~100% of mobile users because all smart phones can display a web page NATIVE APPS .Native apps are built using OS-specific programming languages and tools Programming Language Popular Tools Android Java Eclipse iOS Objective-C Xcode Windows Phone C# Visual Studio .Reach ~99% of users WEB VS NATIVE Pros Cons Web Write once (HTML5/JavaScript) Not truly native Native Better user experience Write 3 times (Android, iOS, Windows Phone) What if we could have the best of both worlds – write once and get the best user experience? XAMARIN.FORMS Xamarin.Forms is a cross-platform natively backed UI toolkit abstraction that allows developers to easily create user interfaces that can be shared across Android, iOS, and Windows Phone. Xamarin.Forms Xamarin.iOS Xamarin.Android Windows Phone iOS Android XAMARIN.FORMS EXAMPLE: TABBED PAGE Pivot XAMARIN.FORMS VIEWS (CONTROLS) .ActivityIndicator .Picker .BoxView .ProgressBar .Button .SearchBar .DatePicker .Slider .Editor .Stepper .Entry .Switch .Image .TableView .Label .TimePicker .ListView .Web View XAMARIN COMPONENT STORE http://components.xamarin.com/ XUNI .Xuni is a collection of native, cross-platform controls designed for Xamarin.Forms .Like Xamarin.Forms, .
    [Show full text]