akoeplingeron Hacker News • Recommends
On “Visual C++ Cross-Platform Mobile”
#c++#microsoftoffice#cross-platformdevelopment
189K subscribers • 101 videos on Hallway • Conference channel
Intermediate. Assumes working knowledge.
21K views12 years ago2 recommendations
Programming languagesMobile developmentC++Flutter and React NativeMobile app architecture
Igor Zaika and Tony Antoun explain how Microsoft uses a shared C++ codebase to deliver Office across iOS, Android, Windows, and Mac.
cppcon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2014 -- "How Microsoft Uses C++ to Deliver Office (and More) Across iOS, Android, Windows, and Mac, Part I" -- What does it take to target multiple major mobile devices (as well as traditional environments) with portable, efficient, single-source code? This talk demonstrates architectures, techniques, and lessons learned rooted in actual experience with using C++ to deliver several major cross-platform projects across iOS, Android, Windows, and Mac: Microsoft Office (Word, Excel, PowerPoint, OneNote) and the SQL Server PowerBI. Each presents a different case study: For example, Office already used C++, whereas PowerBI was originally written in Silverlight and then rewritten in C++; Office is a set of user-facing apps, whereas PowerBI is a system component. Although some of these are demanding first-tier “Cadillac” applications, we expect this experience to be a model for the future as more and more apps fall into this category and use C++ to target many popular platforms from (mostly) a single source base. This talk will cover the following key topics and tradeoffs: Rich vs. reach, including access to latest OS features (e.g., iOS 8 additions) and hardware features (e.g., vector units, GPUs). Consistency of functionality. Client code vs. server/service web code. Sharing vs. quality, including dialing appropriately between more shared code and high quality code. Drawing the line between the bulk of C++ code and interfacing with non-C++ for UX and PALs (platform adaptation/abstraction layers) for target-specific user interface and system services. Architecting PALs, including why “mini-PALs” rather than an “über-PAL.” Forces “doing the right thing” and good architecture with composable components. How C++ enables things not feasible using other technologies. Velocity and enabling faster cross-platform development and deployment. Cost of maintenance, including time, size, and complexity (both breadth and depth). And, last but not least, developing in a single modern C++ source base built with different evolving C++ compilers, including VC++ and Clang/LLVM. -- Igor Zaika is the Development Manager for the Office Core Experience team at Microsoft, responsible for shared UX components and application framework used by Office applications. Before that, Igor worked in various areas related to Office client applications, ranging from building Word Object Model and integrating VBA (Visual Basic for Applications) with Office, to shipping first version of OneNote for the WinRT platform. Before joining Microsoft, Igor worked on 3D CAD application and contributed to the Kronos project . -- Tony Antoun is Director of Development for APEX, focusing on delivering Office on all Apple platforms and form factors (iPhone, iPad, Mac), as well as aligning the Office experience on other major platforms (Win32, WinRT, Android). BeWhat people say. Recommended as a classic case study of sharing a large C++ codebase across multiple mobile and desktop platforms.
akoeplingeron Hacker News • Recommends
On “Visual C++ Cross-Platform Mobile”
golf1052on Hacker News • Recommends
On “Microsoft Teams, the new chat-based workspace in Office 365”
xor_nullon Hacker News • Mentions
On “Office 365, Skype, MS Teams, and VS Code Are All Being Rewritten in React Native”
pjmlpon Hacker News • Mentions
On “$600 Chromebooks are a dangerous development for Microsoft”
pjmlpon Hacker News • Mentions
On “Flutter looks good, but is painful”
pjmlpon Hacker News • Mentions
On “Ask HN: React Native or Flutter?”