W najprostszej formie aplikacja Shiny wymaga serwera i interfejsu użytkownika (UI). Te komponenty tworzą podstawową architekturę wszystkich aplikacji Shiny. Obiekt ui steruje układem i wyglądem aplikacji, a funkcja server zawiera logikę wymaganą przez aplikację. Jeśli wiesz, jak działają aplikacje internetowe, możesz traktować je odpowiednio jako frontend i backend. Funkcja shinyApp() tworzy i uruchamia aplikację Shiny z jawnej pary interfejs użytkownika / serwer. Skompiluje kod R do przyjaznych dla sieci języków HTML, JavaScript i CSS. Poniżej mamy najprostszą możliwą aplikację Shiny, która ma pusty serwer i UI z podstawowym komunikatem. Jeśli jesteś w interaktywnej sesji języka R, twoja przeglądarka internetowa powinna się uruchomić i pokazać aplikację. Jeśli tak się nie stanie, możesz samodzielnie przejść do adresu URL, który znajduje się w formularzu http://127.0.0.1:6924/, gdzie 127.0.0.1 jest IP twojego komputera a 6924 jest portem, którego Shiny używa do nasłuchiwania połączeń. Jak widzisz w swojej przeglądarce, nie jest to nic niesamowitego, ale jest to działająca aplikacja internetowa stworzona wyłącznie przy użyciu R:
library(shiny)
server <- function(input, output) { }
ui <- fluidPage(„This is Shiny application.”)
shinyApp(ui, server)
Posiadanie stałego portu zamiast losowo przypisanego portu, który zmienia się przy każdym wywołaniu sinyApp(), ułatwia programowanie. Aby użyć stałego portu, zmień wywołanie funkcji shinyApp(ui, server. options = list(port = 6924)) na port, który Ci odpowiada.
Zauważ, że twoja sesja R będzie zajęta, gdy aplikacja jest aktywna, więc nie będziesz mógł uruchamiać żadnych poleceń R. R monitoruje aplikację i wykonuje jej reakcje. Aby odzyskać sesję R, naciśnij Ctrl + C lub, jeśli używasz RStudio, kliknij ikonkę znaku stopu. Dla uproszczenia tworzymy nasze aplikacje Shiny w jednym pliku. Jednak w przypadku większych aplikacji prawdopodobnie podzielisz komponenty na pliki i (które są standardowymi plikami używanymi w aplikacjach Shiny). Jak zobaczymy, Shiny zapewnia świetny paradygmat do tworzenia aplikacji internetowych, który jest obecnie używany w wielu nowatorskich systemach. Nazywa się to funkcjonalnym programowaniem reaktywnym. Nie jest to prosta koncepcja do zrozumienia, ale jest bardzo potężna i nauczymy się korzystać z jej podstaw. Jednak zanim to zrobimy, spróbuję w prosty sposób wyjaśnić, czym jest i jak działa w Shiny.