Bandung Developer Day #2

Tanggal 10 Desember yang lalu, FowabEdu didukung oleh Microsoft Indonesia, Dicoding dan Codelabs UNIKOM telah menyelenggarakan kegiatan Bandung Developer Day, acara yang bertujuan memberikan berbagai pengetahuan terbaru bagi para deeveloper khususnya di kota Bandung mengenai teknologi pengembangan aplikasi.

Pada event yang kedua ini, topik yang dibawa adalah pengembangan aplikasi berbasis Mobile. Acara diselenggarakan di UNIKOM Dipatiukur mulai jam 1 hingga jam 5 sore dan dihadiri hingga 100 mahasiswa dan pengembanga plikasi. Topik  yang dibahas adalah introduction to mobile product development, dibawakan oleh Andri Yadi, CEO Dycode. Topik berikutnya adalah cara membangun aplikasi mobile menerapkan prinsip-prinsip best practice dibawakan oleh Narenda Wicaksono, CEO Dicoding. Topik terakhir adalah cara menggunakan mobile analytic untuk memonitor lebih lanjut aplikasi mobile yang sudah dikembangkan oleh Adam Ardisasmita, CEO Arsanesia. Acara menjadi lebih menarik karena dibuka menggunakan alunan penampilan band lokal dari UNIKOM.

Andri memberikan lanskap informasi terbaru mengenai pengembangan aplikasi mobile. Hal-hal yang perlu diperhatikan terutama untuk membangun solusi berbasis mobile atau produk berbasis mobile. Pengenalan produk development disertai dengan teknologi pendukung seperti IOT, cloud dan device. Disini juga disampaikan kemampuan Azure, terutama Azure IoT dan Azure Stream untuk mendukung pengembangan produk berbasis IoT.

Sesi berikutnya dibawakan oleh Narenda dari Dicoding. Pada sesi ini, Naren membahas sisi teknis pengembangan aplikasi mobile, hal-hal yang perlu diperhatikan pada saat pembangunan produk berbasis mobile. Naren membahas lanskap teknologi yang tersedia, native atau engine-based development untuk menghasilkan aplikasi mobile. Untuk engine, misalnya AppStudio, atau hybrid-model menggunakan Xamarin dan Visual Studio 2015.

Sesi akhir dibawakan oleh Adam dari Arsanesia, membahas mobile analytic dan app store optimization. Mobile analytic merupakan elemen penting yang perlu diperhatikan oleh developer setelah masa pengembangan untuk melakukan pemantauan keberterimaan aplikasi mereka dipasaran. Salah satu tools yang dapat digunakan adalah Application Insight untuk analitik teknikal dan Mobile Engagement untuk analitik demografi pengguna.

Di akhir acara,ditutup dengan presentasi Microsoft Azure, produk cloud dari Microsoft yang dapat digunakan siapa saja, khususnya mahasiswa dengan akun Dreamspark untuk mengembangkan berbagai solusi, baik web dan mobile.

Posted in Speaking Engagement | Tagged , | Leave a comment

Bandung Developer Day #1

Tanggal 7 November yang lalu, FowabEdu didukung oleh Microsoft Indonesia dan Dicoding telah menyelenggarakan kegiatan Bandung Developer Day, acara yang bertujuan memberikan berbagai pengetahuan terbaru bagi para developer khusus-nya di kota Bandung mengenai teknologi pengembangan aplikasi.

Pada event yang pertama ini, topik yang dibawa adalah pengembangan aplikasi berbasis Web. Acara diselenggarakan di Co & Co Space, mulai jam 1 hingga jam 5 sore, dihadiri 40-an peserta yang datang dari latar belakang mahasiswa, pengembang aplikasi dan penggiat startup. Topik yang dibahas mulai dari introduction terhadap teknologi dan pengembangan web untuk produk dan solusi yang dibutuhkan oleh masyarakat, dibawakan oleh Norman Sasono dari Microsoft Indonesia. Topik berikutnya adalah cara membangun aplikasi web modern dan API untuk aplikasi mobile, dibawakan oleh Puja Pramudya dan Rendy dari Radya Labs. Topik terakhir adalah cara menggunakan web analytic untuk memonitor lebih lanjut aplikasi web yang sudah dikembangkan oleh Wiku Baskoro dari Dailysocial.

Karena sesuatu dan lain hal, topik analytic dimajukan menjadi topik yang pertama disampaikan. Wiku memberikan hal-hal yang perlu diperhatikan bagi pengembang aplikasi web, mengenai metrik yang perlu diukur, apa yang perlu diperhatikan. Tujuan utama pemiliki produk adalah bagiamana setiap metrik itu dapat terus ditingkatkan. Wiku memberikan ilustrasi dan pemahaman disertai dengan demo dari real-experience yang ia miliki selama mengembangkan media teknologi Trenologi.com

Sesi berikutnya diisi oleh Pak Norman Sasono dari Microsoft Indonesia. Dengan pengalamannya bertahun-tahun membantu enterprise dan startup dalam memanfaatkan teknologi untuk menyampaikan solusi, Pak Norman memaparkan hal-hal yang perlu diperhatikan jika ingin membangun suatu produk berbasis web. Pengenalanan product development disertai dengan aspek-aspek teknologi pendukung yang perlu diperhatikan, misalnya penggunakan source control, lingkungan berbeda untuk development dan testing hingga penggunakan cloud seperti Microsoft Azure untuk hosting produk yang sudah dikembangkan.

Intro to Product Development from Wiku Baskoro
Sesi terakhir dibawakan oleh Puja dan Rendy dari Radya Labs Teknologi. Pada sesi ini, Puja dan Rendy membahas dari sisi teknis, hal-hal yang perlu diperhatikan pada saat pembangunan web modern dan API yang mudah digunakan oleh developer. Disini didemokan penggunakan Visual Studio 2013, bagaimana menggunakan Azure App Service sebagai hosting aplikasi, ApplicationInsight untuk mendapatkan statistik aplikasi hingga kemudahan pembuatan API menggunakan ASP.NET Web API.

ref : https://www.eventbrite.com/e/bandung-developer-day-tickets-19024967189

Posted in Spotlight | Leave a comment

Speaking @ Microsoft Tech Days Conference

On October 8, I’m invited to share Azure App Service for running Web and Mobile App Backend in Microsoft Techdays Indonesia. Microsoft TechDays is the biggest conference technology held yearly by Microsoft Indonesia.

I explained how to build C#-Web and mobile app that can be hosted in Azure App Service plan. I also gave demo about how to build C#- Web API project and hosted on Azure App API. Azure App Service is very useful for developer to be more productive developer, focused on code and solution and leave the infrastructure for the big guy to manage.

My Deck can be viewed here.

Posted in Microsoft MVP | Leave a comment

Scan QR Code with Windows Phone RT (WinPRT)

In a hackathon project, my app need qr code scanning functionality. So I search a quick solution and find ZXing and WriteableBitmalEx.WinRT are quite useful.

Here is my setup:

declare local variable of media device

private MediaCapture _mediaCapture;

create a function, to initialize qr code function, which iniate variable needed, preparing viewfinder to get camera as its video source

private async Task InitializeQrCode()
{
// Find all available webcams
DeviceInformationCollection webcamList = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);

// Get the proper webcam (default one)
DeviceInformation backWebcam = (from webcam in webcamList
where webcam.IsEnabled
select webcam).FirstOrDefault();

// Initializing MediaCapture
_mediaCapture = new MediaCapture();
await _mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings
{
VideoDeviceId = backWebcam.Id,
AudioDeviceId = "",
StreamingCaptureMode = StreamingCaptureMode.Video,
PhotoCaptureSource = PhotoCaptureSource.VideoPreview
});

// Adjust camera rotation for Phone
_mediaCapture.SetPreviewRotation(VideoRotation.Clockwise90Degrees);
_mediaCapture.SetRecordRotation(VideoRotation.Clockwise90Degrees);

// Set the source of CaptureElement to MediaCapture
capturePreview.Source = _mediaCapture;
await _mediaCapture.StartPreviewAsync();
}

And now for the actual code to have a qr code scanned :

private async void ScanQrCode()
{
await InitializeQrCode();

var imgProp = new ImageEncodingProperties { Subtype = "BMP", Width = 400, Height = 400 };
var bcReader = new BarcodeReader();
string qrCodeResult = String.Empty ;
while (true)
{
var stream = new InMemoryRandomAccessStream();
await _mediaCapture.CapturePhotoToStreamAsync(imgProp, stream);

stream.Seek(0);
var wbm = new WriteableBitmap(400, 400);
await wbm.SetSourceAsync(stream);

var result = bcReader.Decode(wbm);

if (result != null)
{
//var msgbox = new MessageDialog(result.Text);
//await msgbox.ShowAsync();
qrCodeResult = result.Text;
break;
}
}

TextBlockStatus.Text = "Item is detected..";
}

Posted in Windows Phone | Tagged , | Leave a comment

Hide Keyboard in WP 8.1

Before WP 8.1 came out, we can easily use this.Focus() to hide soft keyboard, by moving the focus to other element.

In WP 8.1, it changed a little bit. We can use InputPane class that available from Windows.UI.ViewManagement. Use “TryHide” & “TryShow” for hiding as well as showing keyboard.

//To hide keyboard
InputPane.GetForCurrentView().TryHide();
//To show keyboard
InputPane.GetForCurrentView().TryShow();
Posted in Windows Phone | Tagged | Leave a comment

How to get App Version from Windows (8.1 and Phone 8.1) Application

I found it is useful to write helper function to retrieve application version directly from app manifest. It can be used to display the app version in about page of your application.

Here we go :

public static string GetAppVersion()
{
Package package = Package.Current;
PackageId packageId = package.Id;
var version  = packageId.Version;
return String.Format("{0}.{1}.{2}.{3}",
version.Major, version.Minor, version.Build, version.Revision);

}
Posted in Windows 8, Windows Phone | Tagged , , | Leave a comment

Speaking @ Global Azure Bootcamp Chapter Bandung

Last saturday, on April,25th 2015, Dycode Edu and Microsoft Indonesia organized Global Azure Bootcamp in Bandung. I was invited to speak and introduce one of great features in Azure : Azure Mobile & Engagement.

I prepared a demo which we develop a working prototype mobile application. The app was photo-sharing app, kinda like instagram clone that we develop with minimal backend effort because we leveraged Azure Mobile, Blob and Engagement as our backend as a service. It is very nice crowd, 40-ish active participant that come to the venue.

Here is my deck :

Posted in Microsoft MVP, Silverlight, Windows Phone | Leave a comment

Pengganti BingMapsTask di Windows Phone 8.1

Dalam kesempatan mengerjakan salah satu aplikasi menggunakan UAP (Universal Application Platform) ada beberapa hal yang ditemui dan berbeda dari sebelumnya jika menggunakan Windows Phone 8.1 Silverlight. Memang selama ini, saya berusaha menahan untuk tidak buru-buru melakukan upgrading aplikasi ke platform baru. Platform Windows Runtime hanya digunakan jika aplikasi benar-benar dibuat setelah UAP dirilis.

Salah satunya adalah bagaimana cara menggunakan atau memanggil aplikasi Peta bawaan, yaitu Maps.

Jika sebelumnya kita menggunakan  Launcher dengan kode seperti ini :

BingMapsTask bingMapsTask = new BingMapsTask();

//Omit the Center property to use the user's current location.
//bingMapsTask.Center = new GeoCoordinate(47.6204, -122.3493);

bingMapsTask.SearchTerm = "coffee";
bingMapsTask.ZoomLevel = 2;

bingMapsTask.Show();

Pada Windows Phone 8.1 diubah menjadi seperti ini :

double lat = -6.149494;
double lan = 106.846697;

string uriToLaunch = @"bingmaps:?rtp=post.{0}_{1}~pos{2}_{3}";

var position = ResourceHelper.Instance.CurrentPosition;

string uri = String.Format(uriToLaunch, position.Coordinate.Latitude, position.Coordinate.Longitude,lat, lan);

var success = await Windows.System.Launcher.LaunchUriAsync(new Uri(uri,UriKind.Absolute));

Terdapat format uri yang harus diikuti. Skema bingmaps: sekarang menggantikan MapsTask dan MapsDirectionsTask. Contoh diatas adalah untuk menampilkan jalur dari satu titik ke titik tertentu. Untuk format lengkap silahkan baca dokumentasinya disini.

Posted in Windows Phone | Tagged , | Leave a comment

UrlEncode di WinRT

If your are looking HttpUtility in WinRT, you will search for a while. All helpers to encode/decode Url / Html are now availbale in the namespace System.Net.WebUtility.

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
System.Net.WebUtility.UrlEncode(string);
System.Net.WebUtility.UrlDecode(string);
Posted in Windows 8 | Tagged | Leave a comment

Working with XAML Workshop in Maranatha University

This is very rare occasion. My friend, Mr Risal, a lecturer from Maranatha University invited me to deliver 3-hours workshop for his students. Advance programming students have learn about building windows phone application. Now it’s time for them to get how-to and tips to build great user interface using XAML Technology.

I explained XAML and its usage,especially one I used in practical implementation in actual project. They’ve learned about all the controls. I completed their knowledge about using style & resource in XAML, re-templating control and build user control.

In 2nd session, I taught about data binding, and blendability concept to help them working in team more efficient then before.

Here is my slide http://www.slideshare.net/poedja/working-with-xaml. It contains more demos than explanation.

Posted in Windows Phone | Tagged | Leave a comment