What does SOLID aka (S.O.L.I.D) means?

S.O.L.I.D is an acronym for the first five object-oriented design(OOD) principles by Robert C. Martin, popularly known as Uncle Bob.

These principles, when combined together, make it easy for a programmer to develop software that are easy to maintain and extend. They also make it easy for developers to avoid code smells, easily refactor code, and are also a part of the agile or adaptive software development.

S.O.L.I.D stands for:

When expanded the acronyms might seem complicated, but they are pretty simple to grasp.

Let’s look at each principle individually to understand why S.O.L.I.D can help make us better developers.

Single-responsibility Principle

S.R.P for short – this principle states that:

A class should have one and only one reason to change, meaning that a class should have only one job.

Open-closed Principle

Objects or entities should be open for extension, but closed for modification.

Liskov substitution principle

Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where Sis a subtype of T.

Interface segregation principle

A client should never be forced to implement an interface that it doesn’t use or clients shouldn’t be forced to depend on methods they do not use.

Dependency Inversion principle

The last, but definitely not the least states that:

Entities must depend on abstractions not on concretions. It states that the high level module must not depend on the low level module, but they should depend on abstractions.

Advertisements

AIR for Android ile internet bağlantısını sorgulamak ( Adobe Air detect for internet connection )

Android için ya da diğer mobil cihazlar için uygulama geliştiriyorsak uygulamamızın temel ihtiyaçları olabilir. Bunlar internet bağlantısını kontrol etmek, GPS kontrolleri, MACID gibi bir çok şeyi elde etmek isteyebiliriz. Bu gibi durumlarda Flex SDK ve AIR SDK bize bir çok yenilik sağlıyor aslında. Native uygulama geliştirmek yerine daha hızlı daha kolay ve daha anlaşılır bir şekilde mobil uygulamalar geliştirebilirsiniz. Tek şartınız kurulan cihazda AIR Runtime kurulu olması gerekiyor (bu sadece Android cihazlar için geçerli.) Diğer taraftan IOS tabanlı uygulamalar ve oyunlarda ise hiç bir şekilde ek bir plug-in’e ihtiyaç duyulmuyor. Native kodlar gibi derlenip .ipa çıktısı verebiliyor.

Kısaca üstün körü bir şekilde AIR for Mobile’dan bahsettikten sonra asıl konumuz olan internet bağlantısını kontrol etmeye gelelim. Bunun için ilk olarak yapmamız gereken belli başlı ayarlar bulunuyor. İlk olarak Air SDK’den aircore.swc dosyamızı dahil etmemiz gerekiyor. Bunun için şu adımları izleyin.

İlk olarak projemizi açalım. File > new > AIR for Android seçin daha sonra aşağıdaki ayarlara bir göz atın.

C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR2.6\frameworks\libs\air klasöründe aircore.swc’nin olduğundan emin olun. Daha sonra Flash Professional’a geçip şu adımları izleyin;

File > Publish Setting > Sağ üst köşedeki ikinci anahtar simgesine tıklayın > Açılan pencerede -Library Path- sekmesine tıklayın > Artı simgesine tıklayın, Daha sonrasında -Flash player ikonuna tıklayın (küçük beyaz f işareti) Yukarıda belirttiğim dizine gidin ve oradan aircore.swc bulun ve ekleyin. Daha sonrasında aşağıdaki kodları yazın;

 // uygulama için gerekli kütüphaneleri uygulamaya dahil ediyoruz.
 import air.net.*;

// monitor ibaresi bize internet bağlantısının olup olmadığını sağlar.
 var monitor:URLMonitor = new URLMonitor(new URLRequest('https://serhatsezer.wordpress.com'));
 // bir event'e bağlayıp akışı kontrol etmemizi sağlayan fonksiyona gönderir.
 monitor.addEventListener(StatusEvent.STATUS, netConnectivity);
 // yaptığımız işlemleri başlatır.
 monitor.start();

function netConnectivity(event:StatusEvent):void
 {
 // eğer internet bağlantısı sağlınıyorsa true, sağlanmıyorsa false değeri dönderir.
 if(monitor.available)
 {
 trace("internet bağlantısı var.");
 }
 else
 {
 trace("internet bağlantısı yok.");
 }
 }

İhtiyaç duyabileceğiniz kaynaklar;

http://cookbooks.adobe.com/post_Detecting_the_network_connection_type_with_Flex_4_-18791.html
http://www.actionscript.org/forums/showthread.php3?t=261165
http://stackoverflow.com/questions/9671678/adobe-air-check-for-internet-connection
http://stackoverflow.com/questions/9872348/adobe-air-detect-if-connection-is-wifi-3g-or-edge