2013년 11월부터 매월 1회 진행되는 앱개발 세미나를 촬영한 영상입니다. 그 첫번째 주제는 'Windows 8.1 완전정복!'으로 Windows 8.1에 추가된 새로운 API를 알아보고, 새로운 개발환경에 대해 살펴 보았습니다.
Windows 8.1에 추가된 새로운 API중에서 중요한 API들을 살펴보고 구현 방법을 샘플을 통해 하나씩 소개해 드립니다.
소개된 샘플은 http://sdrv.ms/11igPnr 여기에서 받을 수 있습니다.
3. 개발자를 위한
Windows 8.1 완전정복!
대상
• 앱개발에 관심있는 모든 개발자
테크데이즈 미니 앱개발 세미나 웹페이지
http://aka.ms/techdaysminiappdev
• 지난 세션 자료 열람
• 앞으로 계획된 세션 확인
테크데이즈 미니 토요세미나
http://aka.ms/techdaysminisat
• 11월 30일 “Visual Studio 제대로 파헤쳐보기” 2탄
• 11월 16일 세션 자료 열람
7. 모든 가격대에서 만나보는 터치 스크린
점점 더 고해상도
8” Windows tablets
LTE, 3G…. 등 통신 기능 기본 탑재
가벼워지고 얇아지지만 오래가는 배터리
배터리 사용 시간은 기본 8시간?
8.
9.
10.
11.
12.
13. Updated
User interface
Accessibility
Data binding
Devices
Live tiles and
toast
Input
Controls
Graphics and media
HTML5/CSS
XAML
Communications and data
Services
Portable
Geolocation
Direct3D
Direct2D
Direct Write
Local
storage
SMS
Skydrive
Sensors
Proximity
Playback
Capture
PlayTo
Streams
Background
transfer
Bing
Canvas
SVG
Syndication
Networking
Azure
Mobile
XML and
JSON
Contracts
Xbox Live
Printing
Fundamentals
Application
services
Threading/timers
Memory
management
Globalization
Cryptography
Authentication
14. New
Updated
User interface
Accessibility
Data binding
Devices
Live tiles and
toast
Input
Controls
Graphics and media
HTML5/CSS
XAML
Communications and data
Speech synthesis
Services
Portable
Geolocation
Point of
service
Direct3D
Direct2D
Direct Write
Local
storage
SMS
HTTP
Skydrive
Sensors
Proximity
USB
Playback
Capture
PlayTo
Streams
Background
transfer
Contacts
Bing
HID
WiFi direct
Bluetooth
Canvas
SVG
WebGL
Syndication
Networking
Appointments
Azure
Mobile
Printing
3D
printing
Scanning
XML and
JSON
Contracts
PDF
Xbox Live
Fundamentals
Application
services
Threading/timers
Memory
management
Globalization
Cryptography
Authentication
Diagnostics
15. Windows 8.1
You can develop for both Windows 8 and Windows 8.1
on Windows 8.1
A free Microsoft account
Paid accounts required only for submission to the
Windows Store
Visual Studio 2013
Use the full-featured paid editions, or build great apps
using the free edition for Windows Store development.
Develop in JavaScript, VB, C#, or C++.
27. Windows 8.0 Migration
Windows Store App Template
Windows Azure Mobile Service
App Bundle
XAML UI Test
Multi Language Debugging
Async Function Debugging
Power Management
28.
29. Bing As A Platform
Devices & Entry Points
Services
30. Bing As A Platform: Developer Resources
Maps
Bing Maps Platform offers a set of
APIs to incorporate the latest maps,
imagery and location services in your
application.
Translator
The Bing Translator Control and
Microsoft Translator API receive text
and deliver automatic machine
translation into a specified language.
Speech
Get Bing Speech capabilities
integrated with your Windows Phone
and Windows Store apps.
Ads SDK
Whether you’re developing in HTML
or XAML, the Microsoft Advertising
SDK has made it easy to insert ads
into your Windows 8 and Windows
8.1 apps.
OCR
The Bing Optical Character
Recognition (OCR) Control detects
printed text from images captured by
the device camera.
Search API
The Bing Search API enables
developers to embed search results
in applications.
39. 페이스북: The war of IT
http://Facebook.com/thewarofit
http://sdrv.ms/11igPnr
Hinweis der Redaktion
End user/Customer value prop – User experience proof pointsPerformance is better across the boardMore Personal/More EfficientPersonalizationAll apps can easily access your people and calendar data to let you interact with your contacts and manage your eventsQuiet hours – all app notifications (except alarms and incoming calls) are turned off during user set “quiet hours”.TilesSmall tiles lets you get more tiles on the Start Screen (supported automatically with your current assets)Large tiles gives your apps more real estate on the Start Screen to show important information at all times (need to author large)Apps share screenMultiple apps on the screen – up to four apps on the screenApps can be sized anywhere from their minimize width to the full screenOnly the width of apps can be adjusted (standard small width is 500, apps can optionally specially support down to 320)Apps can request to share the screen when launching a file or protocol(example, Mail launches a website and leaves itself on half the screen to keep you in context)Apps don’t launch other apps directly (can open a file or protocol)Apps can specify the user be taken to a specific app in the Windows Store if no handler is present (helps with finding/installing companion apps)CloudRich SkyDrive integration with the operating systemSearchBing drives a much richer search experience“Hero” searches brings together the most important information for popular search termsSearch results are interactive (play music and video in place with one click)Local information is integrated with web information in the search resultALSODesktopSupport per-monitor DPIBetter touch supportSmoother animationResponsive“Fresh Apps” Apps load data files faster with HTTPpre-fetching to a cache, and can pop up on the screen with fresh data immediatelyApps can request that live tiles start as soon as they are installed (vs Windows 8 which is upon first launch)
Designed for new/innovative devicesSmall form factorHigh DPIMulti-monitorMultiple screens can show multiple modern apps at the same timeApps can detect resolution and dpi changes as they move from monitor to monitor
Blend for Visual StudioBest support for creating beautiful interactionsNot just for designers.Best tool for styling controlsBest tool for custom animationFree with Visual Studio.
Visual StudioThe world’s best IDE and development toolsThe developer’s homeEverything you need to build the apps that make the world go round
The performance tools in Visual Studio are unparalleled in their capabilities.Want to test XAML or HTML UI responsiveness? We can do that.How about JavaScript function timing and memory usage? Yup.CPU sampling and network usage? We have that too.We can even tell you how much energy your app is using, so that you can optimize it for the best possible performance and power consumption on portable devices.
WinRT in Windows 8 included a large number of essential APIs. We’ve updated many of them in 8.1 to increase capabilitiesWe’ve provided new controls Updated APIs are in light green (example: Geo-location, Proximity, Authentication, Contracts)
In addition, we’ve added significant new capabilities in Windows 8.1, all accessible to Windows Store app developersCapabilities like Point of Sale/Service device integration, Bluetooth, USB and WiFi direct.We’ve added WebGL for HTML/JS apps, and 3d printing accessible to any Windows Store appWe’ve added new Contacts and Appointments APIs to enable better integration with those things that make the device and your apps more personal.And much moreNew APIs are in blue (examples: Point of Service, USB, Diagnostics, PDF, etc.)
Microsoft is both the creator of .NET/XAML for Windows Store apps, and one of its largest customers. XAML is a key part of the developer story for Windows Store apps. That includes both .NET + XAML and C++ plus XAML
Almost every app needs to display text to the user. In most cases, the element you’ll use is the TextBlock.The TextBlock allows for text display, but isn’t limited to plain fonts. You have access to opentype features through the Typography namespace, and all the standard font features (Size, Weight, Family, etc.) through properties.The last four TextBlock instances all use the same font family, but through OpenType Stylistic Sets, are able to display complex variations.Through OpenType we can even control the display of fractions of arbitrary value. There are many more properties enabling features like capitalization and ligatures to ensure your fonts display exactly as you want them to at every resolution and DPI.The TextBlock also supports line breaks and word wrapping, but for more complex text, we have another control.
The text in the code listing has been shortened to fit on the slideParagraphs, spans, and runs allow for formatting sections of the rich text, using all the same font formatting options employed by the TextBlock.Hyperlink control provides simple dedicated URL linking functionality.InlineUIContainer enables inclusion of any XAML content, including other text controls, images, and even buttons and drop-down list boxes. This is primarily for the display of inactive controls, but they may be made interactive as well.RichTextBlockOverflow facilitates smooth overflow for multi-column text layout. In this case, the two controls are (not shown here) placed inside a two-column Grid.
The RichEditBox is to the TextBox what the RichTextBlock is to the TextBlock. It enables the display of complex rich text complete with inline elements and fine control over formatting.The text shown was loaded from an RTF document saved in Microsoft Word. Full fidelity formatting was preserved when displaying in the RichEditBox.
The InputScope property of the TextBox requires a little more explanation.Setting the scope does not provide any data validation. Instead, it is a hint to Windows telling it which on-screen keyboard to use for the most efficient interaction with the user. It’s easy to forget to set the inputscope on TextBox controls. However, we encourage you to set this property to make input easier for your tablet and touch-screen users.
An image’s source may be set in a few different ways.The easiest way is to simply provide a URI and a size. When this happens, Windows loads the entire image into memory and then scales it down from there.The second way is a bit more verbose because it uses a BitmapImage as the source. Like the straight Image Source, the BitmapImage can use a URI source to load from a file, site, or resource. However, it also adds a very important set of properties: DecodePixelWidth and DecodePixelHeight. These tell Windows which size to use when it loads the image into memory. Because the scaling is done once, and doesn’t need to be concerned about animation or other factors, Windows can also use a higher quality downsampling algorithm.If you specify only DecodePixelWidth or only DecodePixelHeight, Windows will infer the other based upon the aspect ratio of the image. However, if you know both values and the aspect ratio for the image, provide both for an even more efficient load.When you know the intended size ahead of time, always decode at that size.Finally, note the URI syntax used for loading assets from the Appx install folder. Prefix : ms-appx://Folder: /Assets/ImagesFile: Pro2.pngWe’ll cover this more in the Performance unit.
Windows 8.1에서는 추가적인 위치 CameraRoll 및 Playlists에서 파일에 액세스하는 데 사용되는 새로운 KnownFolders 속성을 제공합니다. KnownFolders.CameraRoll 속성을 통해 기존 Windows Phone 8 속성처럼 장치 카메라로 촬영한 사진에 액세스할 수 있습니다. KnownFolders.Playlists 속성을 통해 사용자의 재생 목록에 액세스할 수 있습니다.파일 저장소MSA(Microsoft 계정)가 있는 사용자는 파일 선택기에서 SkyDrive를 손쉽게 탐색하고 파일이나 폴더를 선택하여 앱에서 열 수 있습니다.SkyDrive 저장소 관리 도구Windows 8.1에서는 SkyDrive 저장소 할당량 관리 환경이 향상되었습니다. 사용자는 skydrive.com으로 이동하지 않고 Windows 내에서 바로 SkyDrive를 관리할 수 있습니다. 기본 Windows 8.1 인터페이스를 떠나지 않고도 저장소 사용량을 보고, 요금제를 업그레이드하고, SkyDrive에서 공간을 재사용할 수 있습니다.
Slide Objectives:Explain what a Backend-as-a-service isExplain the features (at a high level) that Mobile Services offersTransition:Let’s answer the question, what is Mobile Services?Speaking Points:Mobile Services is a Backend-as-a-Service (BaaS).Instead of coding, testing, deploying, and maintaining your own backend, you spin up a Mobile Service and can instantly take advantage of a ton of great features.These features include:Data storage powered by SQL Database (but not requiring you to be a DBA)Simple and easy to use push notificationsUser authentication and data authorizationServer side scripts so you can craft how your application will function on the server.Scaling – so you can meet the demand of your mobile apps when they get featuredLogging and Diagnostics so you can get insight into how your Mobile Service is workingBackend processing using something called SchedulerNotes:You may want to mention at this time that support exists for other platforms as well (Win Store, Win Phone, Android, iOS, HTML/JS, Xamarin, etc)
Bing is more than the search box in your browser. Through Bing as a Platform, your apps can leverage Bing’s services throughout all your apps and online services.
Bing offers numerous services as part of its developer platform.Bing maps makes it easy to incorporate map, imagery and location services in your appBing speech capabilities for speech recognition in your appsBing OCR to detect text from captured imagesBing translator for automatic machine translationThe Microsoft Advertising SDK and Bing ads to help monetize your appThe Bing search API to embed relevant search results in your apps.
The appointments/calendar API is very simple to use. You’re primarily dealing with two classes:AppointmentAppointmentManagerIn the case of adding an appointment, here are the steps:Create an appointment instancePre-fill details for the appointment (this is recommended as the user will not have an editing UI displayed to them, just a confirmation UI)Figure out where on the screen the popup should displayCall the ShowAddAppointmnetAsync function passing in the appointment object, display location, and optionally the preferred placementWhen the async call completes, do something with the returned ID (if the ID is empty, the appointment was not added)Markup for the button:<Grid Background="{ThemeResourceApplicationPageBackgroundThemeBrush}"> <StackPanel Width="500" Height="200"> <Button Content="Add Appointment" x:Name="AddAppointmentButton" Click="AddAppointment_Click" /> <TextBlock x:Name="ResultDisplay" FontSize="30" /> </StackPanel></Grid>The lines in the … section:// display the resultif (!string.IsNullOrEmpty(id))ResultDisplay.Text = "Returned appointment id " + id;elseResultDisplay.Text = "Appointment not added.";
The appointments/calendar API is very simple to use. You’re primarily dealing with two classes:AppointmentAppointmentManagerIn the case of adding an appointment, here are the steps:Create an appointment instancePre-fill details for the appointment (this is recommended as the user will not have an editing UI displayed to them, just a confirmation UI)Figure out where on the screen the popup should displayCall the ShowAddAppointmnetAsync function passing in the appointment object, display location, and optionally the preferred placementWhen the async call completes, do something with the returned ID (if the ID is empty, the appointment was not added)Markup for the button:<Grid Background="{ThemeResourceApplicationPageBackgroundThemeBrush}"> <StackPanel Width="500" Height="200"> <Button Content="Add Appointment" x:Name="AddAppointmentButton" Click="AddAppointment_Click" /> <TextBlock x:Name="ResultDisplay" FontSize="30" /> </StackPanel></Grid>The lines in the … section:// display the resultif (!string.IsNullOrEmpty(id))ResultDisplay.Text = "Returned appointment id " + id;elseResultDisplay.Text = "Appointment not added.";