Idioms

- Time is precious

Monday, September 12, 2016

Tạo SplashActivity Cho App


Trong quá trình mở app thông thường sẽ tốn một khoảng thời gian ngắn. Tuy ngắn nhưng cũng gây khá khó chịu cho người sử dụng. Do vậy, thay vì ta để người dùng phải chờ trên một màn hình trắng, ta có thể hiển thị một màn hình chờ có thể là logo của app hay vài hình ảnh vui để người dùng cảm thấy thoải mái khi mở app.
Thành quả:



Các bước tiến hành:
- Bước 1: Tạo SplashActivity và đặt theme cho activity này trong manifest như sau:
<activity    android:name=".activity.SplashActivity"    android:theme="@style/splashScreenTheme">    <intent-filter>        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>

- Bước 2: Tạo splashScreenTheme trong file values/styles.xml
<style name="splashScreenTheme" parent="@style/AppTheme">    <item name="android:windowBackground">@drawable/ic_main</item></style>

- Bước 3: Trong SplashActivity xử lý sự kiện load hoặc gọi activity mới mà mình mong muốn.
public class SplashActivity extends AppCompatActivity {

    @Override    protected void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.splashScreenTheme);        super.onCreate(savedInstanceState);
        Intent intent = new Intent(this, LoginActivity.class);        startActivity(intent);        finish();    }
}

Tuesday, July 12, 2016

How To Create A Hello World Applicaiton In Android Studio / Làm Sao Cài Đặt Một Ứng Dụng Hello World Trên Android Studio?


Bước 1: Vào Start A New Android Studio Project


Bước 2:
- Application Name: Tên ứng dụng của bạn.
- Company Domain và Package Name: Tên dùng để đặt cho package của bạn. Nếu bạn chưa biết khái niệm này thì cứ để mặc định.
- Project location: Đường dẫn lưu project của bạn. Bạn nên để đường dẫn mặc định ở chỗ này.


Bước 3: Bạn chọn mục Phone and Tablet vì chúng ta đang muốn viết ứng dụng cho thiết bị di động và máy tính bảng. Lưu ý ở đây bạn nên chọn Minimum SDK từ 4.0 tức API 14 trở lên. Bởi vì các SDK thấp hơn bây giờ ít được sử dụng và nó gây nên một số rắc rối lúc lập trình.
ps: Minimum SDK là phiên bản SDK thấp nhất mà ứng dụng có thể chạy được. Ở đây bạn chọn 4.0 thì có nghĩa là chi những điện thoại có phiên bản Android 4.0 hoặc cao hơn mới có thể sử dụng ứng dụng của bạn.


Bước 4: Bạn chọn Empty Activity. Android Studio sẽ mặc định tạo cho bạn một ứng dụng có một Activity và một Layout. Ngoài ra, còn nhiều loại khác bạn có thể khám phá thử :D


Bước 5: Ở đây bạn sẽ chọn tên cho Activity của mình. Vì đây là lần đầu tạo ứng dụng nên ban cứ để mặc định. Cuối cùng chọn Finish và chờ...


Bước 6: Khởi động máy ảo Genymotion. Nếu bạn chưa có plugin Genymotion thì vào đây!


Bước 7: Build ứng dụng có 3 cách:
- Shift + f10
- Vào Run => Run 'app'
- Chọn Vào Button Run có hình tam giác như hình dưới


Cuối cùng bạn sẽ thấy Hello World như hình dưới. Share nếu thấy bài viết giúp ích cho bạn :D


How To Install Genymotion Plugin In Android Studio / Làm Sao Cài Đặt Genymotion Plugin Trong Android Studio?


Bước 1: Vào Android Studio chọn Config -> Plugin


Bước 2: Chọn Browse repositories

Bước 3: Search Genymotion sau đó chọn Install


Đợi Install xong restart lại Android Studio là bạn có thể sử dụng plugin rồi.

Sunday, July 10, 2016

How To Install An Android Virtual Device / Làm Thế Nào Để Cài Đặt Một Máy Ảo Android?


Android Virtual Device là máy ảo Android có thể chạy được trên Windows. Hiện tại, có rất nhiều nhà cung cấp dịch vụ máy ảo như Genymotion, Bluestacks và máy ảo mặc định của Android Studio là AVD.
Trong bài viết này mình sẽ giới thiệu với các bạn cách cài đặt Genymotion bởi vì các lí do sau:
- Cách cài đặt đơn giản.
- Nhiều máy ảo mẫu sẵn có, có thể tải về dùng ngay mà không cần cấu hình.
- Genymotion không yêu cầu cấu hình máy tính quá cao.
- Có thể cài được plugin Genymotion vào trong Android Studio.
Trước tiên để tải được Genymotion bạn vào link sau: Genymotion. Bạn nên tạo một tài khoản để có thể tải được tệp cài đặt.
Tiếp theo bạn chỉ cần chạy tệp cài đặt (.exe) để tiến hành cài đặt. Nếu bạn không có nhiều am hiểu về máy ảo Genymotion thì chỉ cần chọn Next qua các bước để cài đặt theo tùy chọn mặc định.
Khi lần đầu tiên mở Genymotion lên bạn sẽ được yêu cầu đăng nhập để có thể tạo được máy ảo mới. Bạn hãy dùng tài khoản khi nảy đăng kí để đăng nhập vào. Tiếp theo là vào add để thêm máy ảo mới:
Chọn máy ảo mà bạn muốn cài đặt, ấn Next và chờ cho đến khi máy ảo được tải xong.
Như vậy là bạn đã có thể tạo được một máy ảo cho riêng mình rồi. Lưu ý một điều là các bạn không nên chọn các máy ảo có độ phân giải cao như 1080x1920 hoặc cao hơn bởi vì trên máy tính thông thường không hỗ trợ định dạng này, bạn cài máy ảo này chỉ làm nặng máy thôi.

Saturday, July 9, 2016

How To Install Android Studio In Windows? / Làm Sao Cài Đặt Android Studio Trong Windows?


Android Studio là IDE chính thức của google hỗ trợ cho developer tạo ra các ứng dụng Android. Một IDE mà mình rất thích dùng,  theo quan điểm cá nhân mình thì Android Studio chỉ thua mỗi Visual Studio của Microsoft.

Yêu cầu: Máy tính phải được cài đặt trước Java Development Kit (JDK) phiên bản mới nhất.

Để có thể tải được phiên bản mới nhất của Android Studio các bạn có thể vào đường link sau: Android Studio

Mặc định các bạn sẽ tải phiên bản bao gồm Android Studio và bộ Android SDK. Nếu bạn chỉ muốn tải Android Studio hoặc Android SDK thì bạn có thể vào Download Options và chọn file mình muốn tải.
Sau khi tải về bạn chạy file .exe để tiến hành cài đặt Android Studio, nếu bạn không sử dụng máy ảo mặc định của Android Studio thì trong lúc cài đặt hãy bỏ qua hai tùy chọn sau: Android Virtual Device và Performance.
Mình khuyến khích bạn nên sử dụng Genymotion để chạy máy ảo thay cho máy ảo mặc định của Android Studio. Bởi vì Genymotion chạy rất nhẹ, ít ngốn ram, và có nhiều máy ảo mẫu cho bạn tải về không cần phải cấu hình nhiều thứ như AVD.
Mình sẽ bổ sung bài viết về máy ảo Genymotion sau. Các bạn cứ tìm nhãn Genymotion sẽ thấy.

Monday, March 7, 2016

Read/Write CSV File With OpenCSV: Đọc/Ghi CSV Fille với OpenCSV


Nếu bạn chưa biết tải bộ thư viện này ở đâu thì có thể click vào đây!
Còn nếu bạn chưa biết làm sao để thêm bộ thư viện này vào project của mình thì có thể vào đây!

Chúng ta bắt đầu với một ví dụ đọc file csv như sau:

public class TestProgram {
public static void main(String[] args){
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
   String [] nextLine;
   while ((nextLine = reader.readNext()) != null) {
      // nextLine[] is an array of values from the line
      System.out.println(nextLine[0] + nextLine[1] + "etc...");
   }
}
}


Adding External Library To Eclipse Project: Thêm Thư Viện Ngoài Vào Project Của Bạn.


Đầu tiên bạn cần download thư viện mình cần dưới dạng .jar file rồi thực hiện theo các bước sau:

Bước 1: Phải chuột vào project chọn properties


Bước 2: Chọn Java build path => chọn thẻ libraries => chọn Add External JARs...

Tới đây bạn chọn file thư viện (.jar) mà mình muốn thêm vào là xong. Bạn có thể import thoải mái các mọi thứ trong thư viện này.

Java - Serialization: Lưu trữ đối tượng trên file


Trước đây khi mình dùng C/C++ để lưu trữ một struct ra file ta phải lưu từng trường của struct, rồi quy định cấu trúc file... rất vất vả. Nay với Java chỉ cần một vài câu lệnh đơn giản bạn có thể lưu trữ bất kì đối tượng nào mà bạn muốn.

Trước tiên là ví dụ về cách ghi đối tượng ra file:
Giả sử mình có class sau, lưu ý là cần implements java.io.Serializable:

public class Employee implements java.io.Serializable
{
   public String name;
   public String address;
   public transient int SSN;
   public int number;
   
   public void mailCheck()
   {
      System.out.println("Mailing a check to " + name + " " + address);
   }
}
Và cách ghi đối tượng ra file như sau:
import java.io.*;

public class SerializeDemo
{
   public static void main(String [] args)
   {
      Employee e = new Employee();
      e.name = "Reyan Ali";
      e.address = "Phokka Kuan, Ambehta Peer";
      e.SSN = 11122333;
      e.number = 101;
      
      try
      {
         FileOutputStream fileOut =
         new FileOutputStream("/tmp/employee.ser");
         ObjectOutputStream out = new ObjectOutputStream(fileOut);
         out.writeObject(e);
         out.close();
         fileOut.close();
         System.out.printf("Serialized data is saved in /tmp/employee.ser");
      }catch(IOException i)
      {
          i.printStackTrace();
      }
   }
}
Chú ý hàm writeObject(object) đây chính là hàm thực hiện nhiệm vụ ghi đối tượng ra file.

Vậy nếu ta muốn load lại đối tượng này từ file thì sao?
Trong Java gọi điều này là Deserializing an Object nghĩa nôm na của nó giống như giải mã đối tượng từ file đã ghi vậy.
Hãy cùng xem ví dụ sau để hiểu rõ hơn:
import java.io.*;
public class DeserializeDemo
{
   public static void main(String [] args)
   {
      Employee e = null;
      try
      {
         FileInputStream fileIn = new FileInputStream("/tmp/employee.ser");
         ObjectInputStream in = new ObjectInputStream(fileIn);
         e = (Employee) in.readObject();
         in.close();
         fileIn.close();
      }catch(IOException i)
      {
         i.printStackTrace();
         return;
      }catch(ClassNotFoundException c)
      {
         System.out.println("Employee class not found");
         c.printStackTrace();
         return;
      }
      System.out.println("Deserialized Employee...");
      System.out.println("Name: " + e.name);
      System.out.println("Address: " + e.address);
      System.out.println("SSN: " + e.SSN);
      System.out.println("Number: " + e.number);
    }
}
Chú ý hàm readObject() hàm này sẽ đọc lên đối tượng từ file mà mình đã ghi từ trước để trả giá trị là một Object. Cho nên bạn cần ép kiểu đối tượng mà mình mong muốn, trong ví dụ chính là kiểu Employee.

Vậy là bạn đã có thể đọc/ghi đối tượng ra file một cách dề dàng và nhanh chóng phải không? Mong bạn thích bài viết của mình :D

Source: http://www.tutorialspoint.com/java/java_serialization.htm