Почти шесть лет назад я написал о Google Nexus One, в котором сказал, что Google Nexus One — отличное оборудование, но ему не хватает хорошей платформы для разработчиков. В то время особенно критиковали решение Google перейти на Eclipse. Я сказал в этом посте, что у IntelliJ IDEA есть лучший продукт для использования в качестве IDE, к счастью для Android Studio, новая IDE основана на IntelliJ IDEA. Хотя создание приложения для Android требует много усилий, но платформа разработчика остается прежней. И это отстой.

Java по-прежнему является основным языком, используемым для Android, и по сравнению с современными языками, такими как Swift и Python, это просто язык стариков. Но вы можете сказать, что язык сам по себе не отвечает за полную платформу. Правда, также имеет значение, как API-интерфейсы разработаны с учетом этого. API-интерфейсы Java, как правило, очень многословны, и API-интерфейсы Google являются ярким примером этого. Позвольте мне продемонстрировать:

Вот пример исходного кода из Google Maps Android и iOS SDK:

import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import android.app.Activity;
import android.os.Bundle;

public class MapPane extends Activity implements OnMapReadyCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map_activity);

        MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap map) {
        LatLng sydney = new LatLng(-33.867, 151.206);

        map.setMyLocationEnabled(true);
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 13));

        map.addMarker(new MarkerOptions()
                .snippet("Hello World")
                .position(sydney));
    }
}

Пример iOS SDK в Swift

import UIKit
import GoogleMaps
class DemoViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition.cameraWithLatitude(-33.868,
        longitude:151.2086, zoom:6)
    let mapView = GMSMapView.mapWithFrame(CGRectZero, camera:camera)
    let marker = GMSMarker()
    marker.position = camera.target
    marker.snippet = "Hello World"
    marker.appearAnimation = kGMSMarkerAnimationPop
    marker.map = mapView
    self.view = mapView
  }
}

Если вы посмотрите на Swift-код, то увидите, что Swift-код не только более читабелен и легок для понимания, но и легко кодируется. Даже если вы никогда не программировали на Swift, вы все равно можете посмотреть пример Swift и понять, что происходит. Опять же, вы должны иметь в виду, что это взято из собственной документации Google Map API.

Общеизвестно, что приложения iOS стали лучше, потому что это лучшая платформа для разработки. Жаль, что такая популярная платформа, как Android, все еще цепляется за старый способ создания приложений. Такие компании, как Xamarin, знают об этом и пытаются преодолеть разрыв, создавая кроссплатформенные инструменты разработки для Android. Люди также используют HTML и JavaScript для создания мобильных приложений, что просто печально. Мне не нужно говорить вам, что нативные приложения всегда лучше для потребителей. Google действительно должен что-то с этим делать. В конце концов, они управляют долей рынка мобильных ОС.

Не то чтобы они не знали, как создавать языки программирования. У них уже есть Go и Dart. Оба могут стать отличной заменой Java на Android. Или просто используйте то, что явно служит примером для другой ведущей в мире платформы для разработки мобильных приложений — iOS. Да, я говорю о Свифте. Apple недавно открыла исходный код. Google может просто использовать его для создания лучшего Android SDK. Google не боится программного обеспечения Apple с открытым исходным кодом. Они уже создали самый популярный в мире веб-браузер Chrome с помощью WebKit от Apple, почему бы не сделать это снова. Как только появится Google Swift Android SDK, я уверен, что Jetbrains сможет придумать для него классную идею или просто расширить Android Studio для поддержки Swift.